码迷,mamicode.com
首页 > Web开发 > 详细

记录学习MVC过程,控制器方法和视图(一)

时间:2015-06-14 10:49:59      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

1//一个简单的注册类(未做任何处理,后续加上其他内容)
public class UserInfo { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual int Age { get; set; } }

 2.MVC和aspx最大的区别,MVC返回的是一个方法,地址栏里其实是方法名,而不再是页面

#region  用户列表
        public ActionResult Index()
        {
            List<UserInfo> user = new List<UserInfo>();
            for (int i = 0; i < 10; i++)
            {
                user.Add(new UserInfo{Id=i,Name="s"+i});
            }
            //ViewBag.dt = user;
            return View(user);
        }
        #endregion

一个控制器对应一个View页面,点击控制器的方法可返回到视图,也可直接添加视图

这是基与MVC的webform还有基与MVC的mvc,最大的区别是调用方法,一个是用@一个是<%:xxx%>
//dynanic 关键词,内置索引,比var更好,因为传回的是一个实体,可以用强制类转换

<% foreach (dynamic t in Model)
           {%>
               <%:t.Name%>
               <%:t.Id%><br />
           <%}
        %>

3.简单的用户注册(未做判断和使用html铺助方法,后续学习跟上),form提交给的是控制器里的方法,类似ashx

  <form method="post" action="/User/ProcessAdd">
        <table>
            <tr>
                <td>用户名</td>
                <td><input type="text" name="UserName" /></td>
            </tr>
             <tr>
                <td>年龄</td>
                <td><input type="text" name="UserAge" /></td>
            </tr>
             <tr>
                <td colspan="2"><input type="submit" value="注册新用户"/></td>
            </tr>
        </table>
            </form>

  控制器对应的方法接收传回来的值

 public ActionResult ProcessAdd(FormCollection collection)
        {
            //FormCollection 表单传过来的集合等同于Request["UserName"]
            string userName = Request["UserName"];
            int age;
            bool b = int.TryParse(collection["Age"]??"0", out age);
            //return Content("Ok");
            return RedirectToAction("Index");
        }

  4.展示用户信息

  

 #region 显示用户详情

        public ActionResult show()
        {
            UserInfo user = new UserInfo();
            user.Id = 1;
            user.Name = "小李";
            user.Age = 21;
            //ViewBag.userinfo = user;
            ViewData.Model = user;//传值model给viewdata.model 强制类型视图
            return View();
        }
        #endregion

  

//前台页面。因为传过来的是一个model,model是一个强制类型视图     

id:<%:Model.Id %> name:<%:Model.Name %> <%:Html.TextBoxFor(u=>u.Name)%>//For用的是lamda表达式,意思是定义一个u(表示他是lamda表达式)goes to 他的属性(-_-百度脑补中)

<%:Html.TextBox("Name") %>//对应Name的值会自动去匹配

  

 

记录学习MVC过程,控制器方法和视图(一)

标签:

原文地址:http://www.cnblogs.com/jsdvkm/p/4574657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!