带有 Jquery 模态形式的 asp.net MVC

Posted

技术标签:

【中文标题】带有 Jquery 模态形式的 asp.net MVC【英文标题】:asp.net MVC with Jquery modal form 【发布时间】:2011-08-24 15:02:54 【问题描述】:

我是 MVC 新手,需要一种方法来提交模式表单以从控制器调用操作。不知何故,提交的值没有传递给控制器​​。

如果我不使用 Jquery UI 对话框模式表单,那么表单会正确提交(表单标签内有一个提交按钮)。否则,通过调用 $("#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>
$(文档).ready(函数 () $("#dialog-form").dialog( 自动打开:假, 身高:300, 宽度:350, 模态:真, 纽扣: "添加新类别": function () $("#newProductForm").submit(); 返回真; , 取消:函数() $(this).dialog("close"); , 关闭:函数() allFields.val("").removeClass("ui-state-error"); ); $("#addNewCategory") 。按钮() .click(函数() $("#dialog-form").dialog("open"); ); );

============================================ 控制器

 [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) 在表单中尝试CheckBoxForTextBoxFor。就像他们现在一样,我假设他们应该提交假设您指定的名称与控制器方法所期望的模型中的属性相匹配。

2) 使用 Firefox 中的 Firebug 控制台查看发布到控制器的内容。

请记住,表单中字段的名称必须与模型中的属性完全匹配。

希望有帮助!

【讨论】:

以上是关于带有 Jquery 模态形式的 asp.net MVC的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 在 jQuery 数据表中使用带有按钮 onclick 的模态弹出窗口

通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发

ASP.NET MVC5 Bootstrap 3 模态表单未验证客户端并回发到页面

布局 ASP.NET Razor 页面中的模态

ASP.NET Core 5 MVC:在模态窗口之前验证表单

asp.net jquery datepicker bug