Я работаю над приложением 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?
Я могу предложить вам добавить обработчики событий для обеих кнопок и установить действие формы в этих обработчиках. Я думаю, это будет более ясно:
$(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" />
Проверьте эту ссылку, это то, что я использовал для обработки нескольких кнопок отправки в MVC, и все еще работает в проекте MVC4 и MVC5.
Несколько кнопок отправки с ASP.NET MVC
Однако кажется, что ваша кнопка сохранения будет представлять, и Add Row будет просто простой кнопкой, не так ли?
"action1"
я просто должен правильно"action1"
название своего действия?