在Razor View Model中向Ajax.BeginForm调用添加一个类

PlT*_*lor 15 html5 razor asp.net-mvc-3

我有以下代码

@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" }))
        {
            <input type="text" placeholder="Search Parts"/>
            <input type="submit" value="Search"/>
        }
Run Code Online (Sandbox Code Playgroud)

它输出以下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>
Run Code Online (Sandbox Code Playgroud)

我想让输出的HTML有,form>标签有class ="pull-right".我怎么能做到这一点?

Dar*_*rov 27

您可以使用其中一个允许您指定html属性的重载 ::

@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"/>
}
Run Code Online (Sandbox Code Playgroud)

此外,我强烈建议您依赖表单的URL而不是硬编码,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"/>
}
Run Code Online (Sandbox Code Playgroud)