ASP MVC ActionName in Ajax.BeginForm
本文关键字:Ajax BeginForm in ActionName MVC ASP | 更新日期: 2023-09-27 18:18:08
我正在使用这个超载的Ajax.BeginForm()
:
(this AjaxHelper, AjaxOptions ajaxOptions):MvcForm
一切都好。
但是现在我需要添加一个属性到我的<form>
-标签,所以我需要发送htmlAttributes
-因此我需要使用Ajax.BeginForm()
的另一个过载。
这是我的问题:当我使用第一个重载,我得到一个正确的href的形式,但与第二个重载,我需要在一个ActionName传递。我试过在真实的ActionName传递,我得到了错误的href。我试图在NULL值传递,它仍然是错误的href(但当我在真正的ActionName ("Index")传递时相同)。
是否有其他方法我可以使用添加我的表单属性或解决这个问题?(我当然可以用javascript添加它,就像我们在90年代做的那样,但这是2013年…)
编辑:这是我现在使用的重载,它给了我错误的href:
Ajax.BeginForm("Index",null,new AjaxOptions() { HttpMethod = "POST",
InsertionMode = InsertionMode.Replace, UpdateTargetId = "myform" },
new { enctype = "multipart/form-data" })
try
@Ajax.BeginForm("Index","YourControllerName",null,new AjaxOptions() { HttpMethod
="POST", InsertionMode = InsertionMode.Replace,UpdateTargetId = "myform"},
new { enctype = "multipart/form-data" })
这就是你想要的重载。
@Ajax.BeginForm("actionName", "controllername", null, ajaxOptions: new AjaxOptions(), htmlAttributes: new Dictionary<string, object>())
指定您的操作和控制器名称。然后为路由值指定null,并传入其他参数。
请注意,用实参名称规范声明形参只是为了说明目的。这是此重载的默认顺序,因此您不需要像我这样显式声明它们。