我有以下代码
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" }))
{
<input type="text" placeholder="Search Parts"/>
<input type="submit" value="Search"/>
}
它输出以下HTML
<form action="/Part" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#update_panel" data-ajax-url="/Part/SearchPart" id="form0" method="post">
<input type="text" placeholder="Search Parts"/>
<input type="submit" value="Search"/>
</form>
我希望输出的HTML有,形式&gt;标记为class =“pull-right”。我怎么能做到这一点?
答案 0 :(得分:27)
您可以使用one of the overloads来指定html attributes ::
@using (Ajax.BeginForm(null, null, new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" }, new { @class = "pull-right" }))
{
<input type="text" placeholder="Search Parts"/>
<input type="submit" value="Search"/>
}
此外,我强烈建议您依赖表单的网址,而不是在AjaxOptions
中对其进行硬编码,因为当您在虚拟目录中部署应用程序时,可能是您的硬编码/Part/SearchPart
网址不管用。更不用说你是否改变了Global.asax中的路由模式。所以:
@using (Ajax.BeginForm("SearchPart", "Part", null, new AjaxOptions { UpdateTargetId = "update_panel" }, new { @class = "pull-right" }))
{
<input type="text" placeholder="Search Parts"/>
<input type="submit" value="Search"/>
}
答案 1 :(得分:1)
您必须将您的操作和控制器从表单中引用。
这是一个例子:
@using (Ajax.BeginForm("LogOn","Account", new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" }, new { @class ="pull-right"}))
{
<input type="text" placeholder="Search Parts"/>
<input type="submit" value="Search"/>
}