查看返回空模型asp.net mvc3

时间:2011-12-12 13:17:58

标签: asp.net-mvc-3 model

我尝试在局部视图中初始化DataView.Model。页面工作正常,但当我返回控制器时模型为空。

一些帮助(解决方案或解释为什么它不对)。 谢谢!

代码:

在我的部分视图中:

 ViewData.Model = new DiamondPrint();
 ViewData.Model.Diamond = m_db.DiamondInfoes.Where(di => di.Id == id).SingleOrDefault();

在我的控制器中:

public ActionResult Preview(DiamondPrint d)//the properties in d = null
{
   return View(d);
}

2 个答案:

答案 0 :(得分:1)

这是一篇关于模型绑定的精彩文章。 Model Binding确保在html输入字段中设置name属性。

答案 1 :(得分:1)

查看您所包含的代码,似乎您在部分视图中初始化ViewData.Model,但在控制器操作中,您期望默认模型绑定器重新创建模型。要使模型活页夹重新创建模型,您需要创建一个强类型视图。

例如:

<强>控制器:

public ActionResult Index()
{
    return View();
}

[HttpPost]
public ActionResult Index(IndexModel model)
{
    return View();
}

<强>型号:

public class IndexModel
{
    public string MyValue { get; set; }
}

查看:

注意顶部的@model定义(忽略命名空间)

@model MvcApplication14.Models.IndexModel

@using (Html.BeginForm())
{
    @Html.Partial("_IndexPartial", Model)

    <input type="submit" value="click"/>
}

部分视图

@model MvcApplication14.Models.IndexModel

@Html.EditorFor(m => m.MyValue)