asp.net MVC中,某个页面中的Model是怎么指定的?

如题所述

Controller代码如下:

public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Index(IndexModel model)
        {
            return View(model);
        }
     }
     
 视图,位于~/Views/Home/Index.cshtml,代码
 @model IndexModel
 <html>
     网页代码
 </html>
 其中IndexModel为你的Model,通过@model来指定这个页面的对象类型为IndexModel
 
 希望你明白~

追问

如果使用Index()方法返回视图,那视图的Model就默认为IndexModel(注:Index加Model就像某页面所在文件夹的名字加上Controller就是对应的控制器一样,加上Model就是对应的模型),
调用另外一个Index(IndexModel)或者在页面通过指令@model来指定某网页的Model,是这样吗

追答

在页面通过指令@model来指定某网页的Model!,和Action方法无关
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(IndexModel model)
{
return View(model);
}
你第一次请求index.csthml页面的时候,执行的是第一个HttpGet的Index()方法;当你提交表单的时候会执行HttpPost的index方法,这个model参数只是为了接收页面参数用的,因为你在页面上通过@model制定了页面的对象为IndexModel,所以在后台你接收到参数后自动映射为model对象,这个return View(model),传递这个model到页面上的作用是记录表单状态,model的值会填充到表单中相应的html元素上。

追问

Inherits="System.Web.Mvc.ViewPage"的作用是什么,视图是aspx页面

追答

你用的aspx页面啊,这句话的作用就是制定视图的Model为XXModel

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-18
你后台给前台传什么类型的数据,这个页面的model就是那个类型的model。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网