mvc基于抽象类的发布类

时间:2011-12-02 13:55:47

标签: jquery asp.net-mvc abstract-class

我的问题是我有一个抽象类,当使用时正确绑定到页面但是当我尝试将模型(基于抽象类的完全形成的类)发布回控制器时,抽象类的属性是没有人口稠密。

我实施的方式如下

public abstract class BaseClass
{
    private int _property1;
    public int Property1
    {
        get{
            return _property1;
        }
        set{
            _property1=value;
        }
    }

}
public class ImplementClass:BaseClass
{
    public ImplementClass()
    {
    }
}

控制器是

public class Ctrler:Controller
{
    public ActionResult DoSomthing()
    {}
    [HTTPPOST]
    public ActionResult DoSomthing(ImplementClass model)
    {
        //...doSomthing with class but the property1 has a value of 0 and debugging will never set the Property on the class
    }
}

视图

@model ImplementClass
@(using(Html.BeginForm("DoSomthing","Ctrler"), FormMethod.Post, new { @id = "frm1", @enctype = "multipart/form-data" }))
{
    <div>
        @Html.HiddenFor(x=>x.Property1,new {@Value="1"})
    </div>
    <input type="Submit" Value="Submit"/>
}

提交是通过Ajax进行的,代码就像是。

$(function(){
$('form').bind('submit',submitForm);

function submitForm()
{
    var submitForm = $('form');

    var data = submitForm.serializeObject();
        $.ajax(submitForm.prop('action'), 
        {
            cached: false,
            type: 'POST',
            //              dataType: 'json',
            //              contentType: 'application/json; charset=utf-8',
            data: data,
            success: function (response)
            {
                alert(response);
            }
        }
    return false;
}
});

[编辑] 我发现问题是我自己的愚蠢,我在班上有一个受保护的SET。

1 个答案:

答案 0 :(得分:1)

要诊断ModelBinder的任何问题(将参数填充到Controller Actions),您可以逐步执行MVC代码。

有关详细信息,请参阅http://weblogs.asp.net/gunnarpeipman/archive/2010/07/04/stepping-into-asp-net-mvc-source-code-with-visual-studio-debugger.aspx