代码之家  ›  专栏  ›  技术社区  ›  Joe herman

如果启用了javascript,如何执行Ajax请求,否则请求将通过POSTBACK进行?

  •  1
  • Joe herman  · 技术社区  · 6 年前

    我编写了一个代码,将软件列表显示为Ajax请求。但当浏览器中的javascript被禁用或不受支持时,代码输出将被中断并显示为长字符串。

    我该如何处理这种状态?

    @model string
    @{
    AjaxOptions AjaxOpts=new AjaxOptions{
        UpdateTargetId="tabledata"
        };
    }
    @using(Ajax.BeginForm("ListData",AjaxOpts)){
    <table>
      <thead>
        <th>Client Name</th>
        <td>dates</th>
      </thead>
    <tbody id="tabledata">
        @Html.Action("ListData",new {id=Model})
    </tbody>
    </table>
    <p>
        @Html.DropDownList("id",new SelectList(
        new[]{"All","web","Windows"},(Model??"All")))
    <input typr="submit" value="Submit"/>
    </p>
    }
    

    请引导我

    1 回复  |  直到 6 年前
        1
  •  2
  •   Morteza Jangjoo    6 年前

    这是优雅的堕落。 试试这个:

    @model string
    @{
    AjaxOptions AjaxOpts=new AjaxOptions{
        UpdateTargetId="tabledata",
        Url=Url.Action("ListData")
        };
    }
    @using(Ajax.BeginForm(AjaxOpts)){
    <table>
      <thead>
        <th>Client Name</th>
        <td>dates</th>
      </thead>
    <tbody id="tabledata">
        @Html.Action("ListData",new {id=Model})
    </tbody>
    </table>
    <p>
        @Html.DropDownList("id",new SelectList(
        new[]{"All","web","Windows"},(Model??"All")))
    <input typr="submit" value="Submit"/>
    </p>
    }
    

    如果浏览器能够使用javascript,则使用Url=Url.Action(“ListData”)指定的地址来加载数据。否则,请求将通过邮局发送(索引视图)