Подтвердить что ты не робот

Добавление класса в 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". Как я могу это сделать?

4b9b3361

Ответ 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"/>
}