2011-05-13 62 views
0

我是新來的MVC,需要一種方式來提交一個模式的形式來調用一個控制器的行動。不知何故,提交的值不會傳遞給控制器​​。asp.net MVC與jquery模式形式

如果我不使用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

我沒有看到任何真實觸發紅旗與您提供的詳細信息。我有兩個建議可以幫助進一步調查,但是:

1)嘗試一個CheckBoxForTextBoxFor的形式。現在,我假設他們應該提交假設您指定的名稱與控制器方法所期望的模型中的屬性匹配。

2)使用Firefox中的Firebug控制檯來查看發佈到控制器的內容。

請記住,表單中字段上的名稱必須完全匹配模型中的屬性。

希望有幫助!