【问题标题】:MVC Viewmodel cant access model with ViewMVC Viewmodel 无法使用 View 访问模型
【发布时间】:2014-09-10 12:55:41
【问题描述】:

如何从我的视图中访问我的视图模型?我的代码如下:-,

我有两个模型(使用实体框架),它们的视图模型为:-

 public class ViewModelStory
{
    public IEnumerable<tbl_GCB_NewsItem> GCB_NewsItem { get; set; }
    public IEnumerable<tbl_GCB_ItemComment> comemnts { get; set; }

}

我的控制器通过以下方式填充模型:-

        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>();

我通过以下方式返回模型

      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))

【问题讨论】:

  • 控制器动作的返回值是什么样的?您是否填充视图以正确返回,例如 return View("myView", myModel)?
  • 我通过以下方式返回它:return PartialView("NewsStory", ViewModelStory);我也将更新忘记添加此位的问题。
  • 恐怕你不能这样设置 ViewModelStory.GCB_NewsItem 属性。请制作一个对象,然后设置属性。如果您的对象与类同名,请更改它并尝试。

标签: asp.net-mvc asp.net-mvc-viewmodel


【解决方案1】:

您传递的是模型类的类型,而不是实际的类。试试这个:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多