MVC Viewmodel无法访问模型与视图
问题描述:
如何从我的视图访问我的视图模型?我的代码如下: - ,MVC Viewmodel无法访问模型与视图
我有两个模型(使用实体框架),它有一个视图模型 - :
ViewModelStory.GCB_NewsItem = (from i in db.tbl_GCB_NewsItem
where i.intItemIdentifier.ToString() == StoryId
select i).SingleOrDefault();
ViewModelStory.comemnts = (from i in db.tbl_GCB_ItemComment
where i.intItemIdentifier.ToString() == StoryId
select i).ToList<tbl_GCB_ItemComment>();
-
public class ViewModelStory
{
public IEnumerable<tbl_GCB_NewsItem> GCB_NewsItem { get; set; }
public IEnumerable<tbl_GCB_ItemComment> comemnts { get; set; }
}
我的位指示由填充模型
我返回由
return PartialView("NewsStory", ViewModelStory);
模型,然后在我看来,我有以下声明
@model ViewModelStory
@using GCBSMVC.Models
要访问我的模型我已经尝试了各种从LINQ到和直接查询模式,但似乎没有任何工作: - Html.DisplayFor(M => m.GCB_NewsItem。 .... ViewModelStory.GCB_NewsItem.strItemCategory Html.Raw(System.Web.HttpUtility.HtmlDecode(ViewModelStory.GCB_NewsItem.strItemHeadline))
答
你传入你的模型类,而不是实际的类的类型。试试这个:
var model = new ViewModelStory();
model.GCB_NewsItem = (from i in db.tbl_GCB_NewsItem
where i.intItemIdentifier.ToString() == StoryId
select i).SingleOrDefault();
model.comemnts = (from i in db.tbl_GCB_ItemComment
where i.intItemIdentifier.ToString() == StoryId
select i).ToList<tbl_GCB_ItemComment>();
return PartialView("NewsStory", model);
你的控制器动作的返回值是什么样的?你是否填充视图以正确返回,例如返回View(“myView”,myModel)? – hschne 2014-09-10 14:19:49
我通过返回它:返回PartialView(“NewsStory”,ViewModelStory);我还会更新忘记添加这一点的问题。 – chris 2014-09-10 15:38:58
我害怕,但你不能这样设置ViewModelStory.GCB_NewsItem属性。请制作一个对象,然后设置属性。如果您的对象与课程名称相同,请更改并尝试。 – 2014-09-11 08:09:43