Добавление класса в Ajax.BeginForm Call в Razor View Model
У меня есть следующий код
@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-код имел тэг form > , чтобы иметь class= "pull-right". Как я могу это сделать?
Ответы
Ответ 1
Вы можете использовать одну из перегрузок, которая позволяет вам указать атрибуты 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"/>
}
Также я бы настоятельно рекомендовал вам полагаться на URL-адрес вашей формы, а не на hardcoding в AjaxOptions
, потому что при развертывании приложения в виртуальном каталоге вероятность того, что ваш hardcoded-код /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"/>
}
Ответ 2
Вы должны указать вам действие и controll для ссылки из вашей формы.
вот пример:
@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"/>
}