如何将数据属性放在Ajax.BeginForm中?

ara*_*333 5 asp.net-mvc knockout.js

因为我在视图中使用Knockout,所以我相应地设置了表单标签;

<form class="employeeListEditor" data-bind="submit: save">
Run Code Online (Sandbox Code Playgroud)

但是,当我单击提交按钮时,我想要部分页面刷新.那么如何在Ajax.BeginForm中设置data-bind属性呢?

这种语法不起作用;

<% using (Ajax.BeginForm("GetCalendar", new AjaxOptions { UpdateTargetId = "siteRows" }, new { data-bind="submit: save", class="employeeListEditor" }))
{%>
Run Code Online (Sandbox Code Playgroud)

nem*_*esv 18

您需要_在属性名称中使用unserscore(),并且Ajax.BeginForm帮助程序(实际上所有HTML帮助程序用给定htmlAttributes对象参数中的破折号替换unserscore)将自动用短划线(-)替换它

new { data_bind="submit: save", @class="employeeListEditor" }
Run Code Online (Sandbox Code Playgroud)

你需要使用一个接受像这样的 htmlAttributes 的Ajax.BeginForm 重载:

<% using (Ajax.BeginForm(
          "GetCalendar", // actionName
          null, // routeValues
          new AjaxOptions { UpdateTargetId = "siteRows" }, // ajaxOptions
          new { data_bind="submit: save", @class="employeeListEditor" } // htmlAttributes
         ))
{%>
Run Code Online (Sandbox Code Playgroud)