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


    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的值会自动去匹配

      

     

    你将独自前行,你会遇到友好,也会遇到恶意,不管你多么善良,因为世间就是这样,不好,不坏.
  • 相关阅读:
    Arduino-LCD1602液晶显示器
    photoshop--选区变形
    利用github给国外文件下载加速
    开发老人笔记:Git 常用命令清单
    区块链轻节点:“身”轻,责任重
    需求条目化:一个让用户故事有效落地的套路
    十八般武艺玩转GaussDB(DWS)性能调优:Plan hint运用
    跨越全场景统一架构三大挑战,MindSpore亮出“四招”
    看图学NumPy:掌握n维数组基础知识点,看这一篇就够了
    进来抄作业:分布式系统中保证高可用性的常用经验
  • 原文地址:https://www.cnblogs.com/jsdvkm/p/4574657.html
Copyright © 2020-2023  润新知