0

我正在使用这个重载Ajax.BeginForm()

(this AjaxHelper, AjaxOptions ajaxOptions):MvcForm

这一切都很好。

但是现在我需要给我的<form>-tag 添加一个属性,所以我需要发送htmlAttributes-ergo 我需要使用另一个重载的Ajax.BeginForm().

这是我的问题:当我使用第一个重载时,我得到了正确的表单href,但是对于第二个重载,我需要传入一个ActionName。我试过传入真实的 ActionName,但我得到了错误的 href。我尝试传入 NULL 值,但它仍然是错误的 href(但与我传入真实的 ActionName(“索引”)时相同)。

有没有其他方法可以用来添加我的表单属性或解决这个问题的方法?(我当然可以用 javascript 添加它,就像我们在 90 年代所做的那样,但这是 2013 年......)

编辑:这是我现在使用的重载,这给了我错误的href:

    Ajax.BeginForm("Index",null,new AjaxOptions() { HttpMethod = "POST", 
InsertionMode = InsertionMode.Replace, UpdateTargetId = "myform" }, 
    new { enctype = "multipart/form-data" })
4

2 回答 2

1

try

@Ajax.BeginForm("Index","YourControllerName",null,new AjaxOptions() { HttpMethod
 ="POST", InsertionMode = InsertionMode.Replace,UpdateTargetId = "myform"}, 
new { enctype = "multipart/form-data" })
于 2013-06-13T15:01:13.810 回答
0

这是你想要的超载。

@Ajax.BeginForm("actionName", "controllername", null, ajaxOptions: new AjaxOptions(), htmlAttributes: new Dictionary<string, object>())

指定您的操作和控制器名称。然后,您为路由值指定 null 并传入其余参数。

请注意,使用参数名称规范声明参数仅用于说明目的。这是此重载的默认顺序,因此您无需像我所做的那样显式声明它们。

于 2013-06-13T13:44:47.270 回答