2011-12-12 99 views
0

我尝试初始化DataView.Model的局部视图。该页面正常工作,但是当我返回到控制器时,模型是空的。视图返回空模型asp.net MVC3

一些帮助(溶液或解释为什么这是不对的)。 谢谢!!

代码:

在我的局部视图:

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); 
} 
+0

请出示一些代码。 – jrummell

+0

我编辑我的问题 – Hadas

回答

1

这里是模型绑定一个伟大的文章。 Model Binding请确保您设置在你的HTML输入字段的名称属性。

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)