Как сделать так, чтобы две кнопки для одной формы проходили одну и ту же модель

0

Я работаю над приложением ASP.NET MVC4. То, что я пытаюсь сделать, это позволить пользователю добавлять строки в таблицу, затем заполнять их данными, при необходимости добавлять еще одну строку и так далее, пока он не захочет сохранить свою работу.

Использование standartd @Html.BeginForm и метод действия AddRow(MyViewModel model) Мне удалось это сделать. Однако в том же виде я хочу добавить еще одну кнопку:

 <input type="submit" value="Add row" />
 <input type="submit" id="save-form" value="Save table" />

И когда нажата SaveCustomTable(MyViewModel mode) Save table я хочу передать модель на другое действие, такое как SaveCustomTable(MyViewModel mode) где я SaveCustomTable(MyViewModel mode) данные и так далее.

Я просмотрел интернет о возможных решениях и нашел это:

$(function () {
    $('#save-form').click(function () {
        $(form).attr('action', 'Url.Action( "action1" )')
               .submit();
        return false; // prevent default submission
    });
});

Однако мое плохое знание jQuery мешает мне полностью работать. Во-первых - это нормально, и будет ли это работать вообще? И если это так, что я должен передать в качестве аргументов $(form).attr(...) для того, чтобы это работало на действия Foo в контроллер Bar? И представит ли он модель в качестве другой кнопки, которая не привязана к нему jQuery?

Теги:
asp.net-mvc-4

2 ответа

1

Я могу предложить вам добавить обработчики событий для обеих кнопок и установить действие формы в этих обработчиках. Я думаю, это будет более ясно:

$(function () {
    $('#addRowBtn').click(function () {
        $(form).attr('action', $(this).attr('rel'));
    });
    $('#saveTableBtn').click(function () {
        $(form).attr('action', $(this).attr('rel'));
    });
});

В вашем представлении добавьте дополнительный атрибут и сохраните здесь требуемое действие:

<input type="submit" id="addRowBtn" rel="@Url.Action("action1")" value="Add row" re />
<input type="submit" id="saveTableBtn" rel="@Url.Action("action2")" value="Save table" />
  • 0
    Я пытаюсь это сделать, но я вхожу в то же самое действие. «Url.Action (« action1 »)» - здесь, на "action1" я просто должен правильно "action1" название своего действия?
  • 0
    Я обновил свой ответ.
Показать ещё 2 комментария
0

Проверьте эту ссылку, это то, что я использовал для обработки нескольких кнопок отправки в MVC, и все еще работает в проекте MVC4 и MVC5.

Несколько кнопок отправки с ASP.NET MVC

Однако кажется, что ваша кнопка сохранения будет представлять, и Add Row будет просто простой кнопкой, не так ли?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню