ASP.NET MVC - 使用模型属性作为表单,如何发布操作?

时间:2011-01-12 01:37:39

标签: c# asp.net-mvc

考虑以下模型:

public class BandProfileModel
{
    public BandModel Band { get; set; }
    public IEnumerable<Relationship> Requests { get; set; }
}

以下表格:

<% using (Html.BeginForm()) { %>
    <%: Html.EditorFor(m => m.Band) %>
    <input type="submit" value="Save Band" />
<% } %>

发布以下操作:

public ActionResult EditPost(BandProfileModel m, string band)
{
    // stuff is done here, but m is null?

    return View(m);
}

基本上,我的模型中只有一个属性用于表单中。 BandProfleModel中的另一个属性仅在UI中用于其他数据。我正在尝试仅更新Band属性,但对于每个帖子,参数“m”始终为null(具体而言,.Band属性为null)。

它对于动作发布得很好,所以这对我的路线来说不是问题。只是数据为空。

字段的ID和名称属性是BAND_whatever和Band.whatever(无论是Band的属性),所以看起来它会起作用......

我做错了什么?我如何只使用一个属性作为表单的一部分,回发,并通过模型绑定器为动作中的BandProfileModel属性填充值?感谢。

2 个答案:

答案 0 :(得分:1)

没关系。这是由于“带”字符串参数。这令人困惑。我改变了它,它的工作原理。

答案 1 :(得分:1)

您正在创建Band的编辑器,其类型为BandModel,但在您的操作中期望使用BandProfileModel。在EditPost操作中接受BandModel。或者为BandProfileModel创建编辑器。