Asp.net MVC3基础

最近开始接触Asp.net MVC, MVC即Model,Controller和View,通过看一些文档,明白了他的基本原理,这里保留下来作为笔记。

MVC通过配置url routing将web request导入到相应的controller类中,通过Controller/Action/id的格式撰写,这不同于webform或winform的防止,不可以直接在属性窗口中设置启动页面或窗体,你需要在Global文件中谁知routes的启动Action. 例如你的Controller类名为Ajax,Action为Index,那么在Global的RegisterRoutes方法中写入:

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Ajax", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }


你可以在Controller类中定义自己的Action,并通过Add View的方式添加对应的View,return View()将自动转入自己的View,如果你需要导入到其他的View中,使用RedirectToAction()方法,你也可以根据自己的需要设置参数。

View一般用于生成HTML代码, 你可以通过使用@字符写对应的语句(MVC3,MVC2应为<%%>),例子:

<ul>
@for (int i = 0; i < ViewBag.NumTimes; i++)
{
    <li>ViewBag.Message</li> 
}
</ul>


Model为实体类,你可以建立自己的实体,如果你有自己的实体类时,可以在创建View的时候通过选生成强类型的view, 这包括基本的template可供选择,如Create,delete,edit,detail等形式,具体在Add View的对话框里可以找到,有了Model, 你可以在controller类中自由的操作model的实例,你也可以在View中使用,不过使用前需要在View中声明,并且使用@HTML.DisplayFor,EditFor,LabelFor等方法建立你需要表现的形式

@model MvcApplication1.Models.Person

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Person</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Age)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Age)
            @Html.ValidationMessageFor(model => model.Age)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>


传值方式:

通过ViewData["a"]=a;

进行简单传值,声明周期为View的生命周期,也支持传向不同的Routes

通过ViewBag

可以接收类实体的形式传值,对应Action中使用ViewBag.a=model; View中使用@Viewbag.a.modelfield显示

通过View参数形式

return View(model)如上面的例子

通过Html.BeginForm的方式

你需要在接收页面使用Request["controlID"]接收

通过url Get传值

同难过使用url?a=a的形式传入,在对应Action中使用Request.QueryString["a"]方式接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值