加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在mvc4 asp.net中的Razor View中的模型声明

发布时间:2020-12-15 20:28:23 所属栏目:asp.Net 来源:网络整理
导读:我是asp.net mvc4的新手,有些东西我不太懂. 如果我已经将对象传递给控制器??中的View,为什么我必须在视图顶部使用@model声明模型. 举个例子: 控制器: public ActionResult countryDetails(int id) { Country country = db.Country.Find(id); return View(c
我是asp.net mvc4的新手,有些东西我不太懂.

如果我已经将对象传递给控制器??中的View,为什么我必须在视图顶部使用@model声明模型.

举个例子:

控制器:

public ActionResult countryDetails(int id)
    {

        Country country = db.Country.Find(id);
        return View(country);

    }

视图:

@model MvcApplication2.Models.Country
@{
    ViewBag.Title = "countryDetails";
}
...

控制器返回一个以对象作为参数的视图,因此该模型应该是已知的.我很抱歉,如果这是显而易见的,但我无法弄清楚为什么这不是一个“双重”声明.

谢谢你的帮助!

解决方法

顶部的声明将为您做两件事:

>当您输入@Model或使用任何Html帮助程序扩展时,它将允许intellisence知道您正在使用的类型.
>它还将在运行时检查传入的模型是否可以转换为视图所期望的类型.

它不一定是“双重声明”,因为它类似于为方法上的参数指定类型.像这样

Person Someone = new Person();
RenderView(Someone);
...
void RenderView(Person model) { }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读