asp.net MVC与Jquery模态形式

时间:2011-05-13 03:36:45

标签: jquery asp.net-mvc

我是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>
    $(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();
        }

1 个答案:

答案 0 :(得分:1)

我没有看到任何因你提供的细节而触发红旗的事情。不过,我有两条建议可能有助于您进一步调查:

1)在表单中尝试CheckBoxForTextBoxFor。就像现在一样,我假设它们应该提交,假设您指定的名称与控制器方法期望的模型中的属性相匹配。

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

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

希望有所帮助!