#jquery #asp.net-mvc
#jquery #asp.net-mvc
Вопрос:
Я новичок в MVC, и мне нужен способ отправки модальной формы для вызова действия с контроллера. Каким-то образом отправленные значения не передаются контроллеру.
Если я не использую модальную форму диалогового окна пользовательского интерфейса Jquery, то форма отправлена правильно (с кнопкой отправки внутри тега формы). В противном случае, при вызове $(«#newProductForm»).submit(); из jquery все значения вообще не передаются контроллеру.
<a id="addNewCategory" href="#">Add new category</a>
<div id="dialog-form" title="Add new category">
@using (Html.BeginForm("ProductCategoryInsert", "Product", FormMethod.Post, new { id = "newProductForm" }))
{
@Html.HiddenFor(m => m.Id)
@Html.CheckBox("IsFeaturedProduct")
@Html.TextBox("DisplayOrder")
}
</div>
$(документ).готово(функция () { $("#dialog-форма").dialog({ Автоматическое удаление: false, высота: 300, ширина: 350, модальный: верно, кнопки: { "Добавить новую категорию": функция () { $("#newProductForm").submit(); возвращает true; }, Отмена: функция () { $(this).диалоговое окно ("закрыть"); } }, закрыть: функция () { allFields.val("").removeClass("ошибка пользовательского интерфейса-состояния"); } }); $("#addNewCategory") .кнопка() .щелкните(function () { $("#dialog-форма").dialog("открыть"); }); });
=========================================== Контроллер
[HttpPost]
public ActionResult ProductCategoryInsert(ProductModel.ProductCategoryModel model)
{
var productCategory = new ProductCategory()
{
ProductId = model.Id,
CategoryId = model.CategoryId,
IsFeaturedProduct = model.IsFeaturedProduct,
DisplayOrder = model.DisplayOrder
};
_categoryService.InsertProductCategory(productCategory);
return View();
}
Ответ №1:
Я не вижу ничего, что вызывает красные флажки с предоставленными вами деталями. Однако у меня есть два предложения, которые могут помочь в дальнейшем вашем расследовании:
1) Попробуйте CheckBoxFor
и a TextBoxFor
в форме. В нынешнем виде я бы предположил, что они должны отправляться при условии, что указанные вами имена соответствуют свойствам в модели, ожидаемым методом контроллера.
2) Используйте консоль Firebug в Firefox, чтобы посмотреть, что отправляется на контроллер.
Помните, имена полей в форме должны точно соответствовать свойствам в модели.
Надеюсь, это поможет!