asp.net MVC с модальной формой Jquery

#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, чтобы посмотреть, что отправляется на контроллер.

Помните, имена полей в форме должны точно соответствовать свойствам в модели.

Надеюсь, это поможет!