任何人都可以帮我找到为什么这不起作用:
型号:
public class CreateAdCategoryViewModel
{
[Display(ResourceType = typeof(HeelpResources), Name = "AdViewModel_Category_Label")]
[Required(ErrorMessageResourceName = "AdViewModel_Required_ErrorMsg", ErrorMessageResourceType = typeof(HeelpResources))]
public int Category_Id { get; set; }
public IEnumerable<SelectListItem> CategoryList { get; set; }
public CreateAdCategoryViewModel(IEnumerable<SelectListItem> categoryList)
{
CategoryList = categoryList;
}
}
控制器:
[Authorize]
[HttpPost]
public virtual PartialViewResult CreateAdCategoryType(CreateAdCategoryViewModel model)
{
// Build the ViewModel to return to the View with the Category Drop List
return PartialView(new CreateAdCategoryTypeViewModel(CategoryDropDownList()));
}
查看:
@model Heelp.ViewModels.CreateAdCategoryViewModel
@using (Ajax.BeginForm(MVC.Ad.CreateAdCategoryType(), new AjaxOptions { UpdateTargetId = "category_type", InsertionMode = InsertionMode.Replace }, new { @id = "categoryForm" }))
{
@Html.DisplayNameFor(m => m.Category_Id)
@Html.DropDownListFor(m => m.Category_Id, Model.CategoryList, HeelpResources.DropdownlistCategoryFirstRecord)
@Html.ValidationMessageFor(m => m.Category_Id)
}
提交是由Javascript:
完成的$(document).ready(function ()
{
$("#Category_Id").change(function ()
{
$("#categoryForm").submit();
});
});
这里的问题是提交从未找到以模式为参数的操作CreateAdCategoryType
,为什么?
答案 0 :(得分:0)
当谈到进入控制器的模型时,它们需要是POCO。如果你没有无参数构造函数,MVC框架根本不会知道如何创建实例。请记住,它需要保湿您的模型。它不知道该怎么做
new CreateAdCategoryTypeViewModel(CategoryDropDownList())
它需要创建一个实例并发现(反映)所有公共属性并对其进行水合。在你的情况下,即使它(框架)找到构造函数,它也不知道要向它提供什么数据。虽然,我认为,它只寻找无参数构造函数。