带Jquery模式表单的asp.net MVC

带Jquery模式表单的asp.net MVC,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我是MVC新手,需要一种提交模式表单的方法来调用控制器的操作。不知何故,提交的值没有传递给控制器 如果我没有使用jQueryUI对话框模式表单,那么表单是正确提交的(表单标签中有一个提交按钮)。否则,通过调用$(“#newProductForm”).submit();从jquery中,所有值根本不会传递给控制器 <a id="addNewCategory" href="#">Add new category</a> <div id="dialog-form" t

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

如果我没有使用jQueryUI对话框模式表单,那么表单是正确提交的(表单标签中有一个提交按钮)。否则,通过调用$(“#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>

我看不到任何触发你提供的细节的危险信号。不过,我有两个建议可能有助于进一步调查:

1) 在表单中尝试使用
复选框和
文本框。现在,我假设他们应该提交,假设您指定的名称与控制器方法所期望的模型中的属性匹配

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

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

希望有帮助

$(document).ready(function () { $("#dialog-form").dialog({ autoOpen: false, height: 300, width: 350, modal: true, buttons: { "Add new category": function () { $("#newProductForm").submit(); return true; }, Cancel: function () { $(this).dialog("close"); } }, close: function () { allFields.val("").removeClass("ui-state-error"); } }); $("#addNewCategory") .button() .click(function () { $("#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();
        }