Ink*_*key 0 c# asp.net-mvc razor asp.net-mvc-4
我已经开始使用MVC,并且已经建立了一个简单的项目,该项目具有一个控制器,而不是从实体FrameWork返回值。我有一个索引页面控制器,Visual Studio在其模板中将其默认设置为索引页面。
我希望此值将返回到网站的索引页。
控制器代码
MISEntities db = new MISEntities();
public ActionResult Index()
{
ViewBag.Message = "Real Time Production";
var scrap = from r in db.tbl_dppIT
select r.CastGood;
return View(scrap);
}
Run Code Online (Sandbox Code Playgroud)
如何使用剃须刀访问var废料?我看过viewbag方法和其他剃刀语法,但似乎找不到我如何访问此项目。
仅仅因为控制器变量是使用var关键字声明的,并不意味着它没有类型。而是,这告诉C#应该通过其上下文来推断类型(在这种情况下,IEnumerable<T>无论tbl_dppIT.CastGood是哪种类型)。
因此,其他三个答案在某种程度上是正确的,您需要定义@model通过其他关键字所指出的razor关键字传递给View的模型的类型:
// In your view Razor:
@model IEnumerable</* type of CastGood */>
Run Code Online (Sandbox Code Playgroud)
除了已经指定的三个答案之外,还有一种选择是将scrap变量粘贴到ViewBag控制器中的:
ViewBag.Scrap = scrap;
Run Code Online (Sandbox Code Playgroud)
Scrap从ViewBag视图中的expando属性访问时,它将是一个动态对象,因此您将无法获得IntelliSense的帮助。但是,这是另一种方式,只是让您知道所有可能性。
更新:
根据下面的评论,看起来CastGood是一个允许为null且类型为的数据库列int,那么您需要:
@model IEnumerable<int?>
Run Code Online (Sandbox Code Playgroud)
HTH。
| 归档时间: |
|
| 查看次数: |
21676 次 |
| 最近记录: |