Публикация одной и той же формы для разных действий в зависимости от нажатия кнопки

У меня есть аналогичный пост на StackOverflow, но, возможно, мое непонимание более существенно. У меня есть действие Index() и представление индекса его рендеринга. Из представления Index() в зависимости от нажатой кнопки [HttpPost]Index() или [HttpPost]Search() должны быть вызваны, потому что я отправляю некоторые данные. Единственный способ публиковать различные действия — использовать jQuery? Если jQuery - единственный способ, если мои действия возвращают просмотры (полные HTML-страницы), мне нужно очистить весь элемент документа из $.post и заполнить его моими представлениями html? Я новичок во всем этом, большое спасибо!

@using (Html.BeginForm())
{
    <input name="startDate" type="text" size="20" class="inputfield" id="datepicker" />
    <a href="#" id="apply_button">...</a>
    <a href="#" id="go_button">...</a>
}


public ActionResult Index(string lang)
{
    return View();
}

//Perhaps this action is needed
[HttpPost]
public ActionResult Index(string lang, string startDate)
{
    return View();
}

[HttpPost]
public ActionResult Search(string lang, string startDate)
{
    return View();
]

person mishap    schedule 22.09.2011    source источник
comment
@DavidLaberge: только что добавил код. Пожалуйста, посмотрите.   -  person mishap    schedule 22.09.2011
comment
возможный дубликат Как я могу назначить разные действия одному и тому же html форму?   -  person Meryovi    schedule 31.07.2013


Ответы (2)


Вы можете изменить атрибут действия формы в зависимости от того, какая кнопка была нажата.

например Чтобы опубликовать действие «поиск» при нажатии кнопки «Перейти»:

$('#go_button').click(function() {
    $('form').attr("action", "Search");  //change the form action
    $('form').submit();  // submit the form
});
person MJ Richardson    schedule 22.09.2011
comment
Но я публикую одно и то же содержимое текстового поля для разных действий в зависимости от нажатой кнопки. Как я могу иметь две разные формы без дублирования html, пожалуйста? Благодарю вас! Кстати, я добавил код в исходный вопрос. - person mishap; 22.09.2011
comment
Спасибо! Ты сделал это! Никто другой не мог мне в этом помочь. - person mishap; 22.09.2011

В дополнение к принятому ответу, когда вам нужно изменить действие, а также контроллер:

$('#go_button').click(function() {
    $('form').attr("action", "@("Search","OtherControllerName")");  //change the form action
    $('form').submit();  // submit the form
});
person Md. Tazbir Ur Rahman Bhuiyan    schedule 02.08.2016