如何通过剑道窗口刷新发布模型?

问题描述 投票:0回答:1

如何使用 Kendo Window 刷新选项传递模型?

我在我的部分视图中使用以下代码:-

var proWindow = $("#productWindow").data("kendoWindow");
   proWindow.refresh({            
       url: "../../Product/UpdateProduct",
       type: "POST",
       contentType:"application/json",
       data: { prodModel: $("form").serialize()
   });

下面是控制器的代码:-

[HttpPost]
public ActionResult UpdateProduct(ProductMaintViewModel prodModel)
{

}

但是我在控制器中的模型参数为空。

任何人都可以对此有任何想法吗?意味着我们如何使用 jquery/javascript 中的 kendo 窗口刷新数据选项来发布整个模型?

仅供参考,我正在开发 ASP.NET MVC 4 应用程序。

下面是我的 ProductMaintViewModel 类:-

public class ProductMaintViewModel
{
    [HiddenInput(DisplayValue = false)]
    public int ProductID { get; set; }
    public int? CustomerId { get; set; }
    public int? InsuranceId { get; set; }

    [Required]
    [StringLength(50)]
    [Remote("CheckProductName", "Product", ErrorMessage = "Product Name already exists.")]
    [Display(Name = "Name")]
    public string Name { get; set; }

    [StringLength(100)]
    [Display(Name = "Description")]
    public string Description { get; set; }

    public bool IsDraft { get; set; }

    [Required]
    [Display(Name = "Product Type")]
    public int? SelectedProductTypeID { get; set; }
    public IEnumerable<SelectListItem> ProductTypes { get; set; }

    public bool IsDeleted { get; set; }

    [Display(Name = "Customer Type")]
    public int? SelectedCustomerSubTypeId { get; set; }
    public IEnumerable<SelectListItem> CustomerSubTypes { get; set; }      

    public IEnumerable<SelectListItem> AvailableLabor { get; set; } 


}
asp.net-mvc-4 post kendo-ui window mode
1个回答
0
投票
[HttpPost]
public ActionResult UpdateProduct([FromBody]ProductMaintViewModel prodModel)
{
    enter code here
}

如果有人仍在阅读本文或将来遇到类似情况的任何麻烦,使用 [FromBody] (上面的示例)注释模型将正确解析模型,当然假设来自 post 请求的 JSON 与模型命名约定匹配。此外,将 contentType 设置为 application/json 是标头的关键部分,以使其发挥作用。希望它对将来的人有帮助

© www.soinside.com 2019 - 2024. All rights reserved.