MVC常用

1、ASP.NET MVC 3 如何去除默认验证

     这个默认验证是在web.config配置文件中设置的
    <add key="ClientValidationEnabled" value="true"/>设置为false就行了,
    这个是去掉所有model的默认验证,然后你可以在model中加上自己的验证,这样哪些属性需要验证,哪些不需要 就看你自己了

示例代码:


publicclass Movie
{
publicint ID { get; set; }

[Required(ErrorMessage="必须输入标题")]
publicstring Title { get; set; }

[Required(ErrorMessage="必须输入发行日期")]
public DateTime ReleaseDate { get; set; }

[Required(ErrorMessage="必须制定种类")]
publicstring Genre { get; set; }

[Required(ErrorMessage="必须输入票价")]
[Range(1,100,ErrorMessage="票价必须在 1 到 100 元之间")]
publicdecimal Price { get; set; }

[StringLength(5,ErrorMessage="最多允许输入5个字符")]
publicstring Rating { get; set; }
publicstring Description { get; set; }
}
2、ASP.NET MVC 3 在视图中如何创建HTML标签,(在视图中把含有标签的字符编译成相应的标签)

     在asp.net mvc 3 中的视图中字符串输出是默认按原字符串输出的,如果需要把字符串中的标签字符编译成相应的标签

     则需要在输出的时候创建标签:@MvcHtmlString.Create(ViewBag.RegionHTML); ViewBag.RegionHTML是包含标签的字符串

3、ASP.NET MVC 3 中 报错:mvc 3 属性不能设置为“null”值。必须将该属性设置为类型为“Int32”的非 null 值。

     这是因为数据库中的表中的字段中有null值(如:int,double,datetime 等)

     这里只需要把数据库中相应数字类型的的字段的值中的null改掉就行了,比如把数字类型NULL值改成0,字符类型NULL值改成空格,日期类型NULL值改成日期

4、数据库表需要加s

    ASP.NET MVC 3 中有个奇怪的现象,在使用EFCodeFirst后很多时候,数据库中的表需要加S,比如原来数据库表Product

   现在要变成Products,不然很多时候会报错:对象名 ‘dbo.Products‘ 无效

5、ASP.NET MVC 3 中如何使用单选按钮 RadioButton

     这个比较简单,两种方式都行 @Html.RadioButton 或 @Html.RadioButtonFor    

     1、  @Html.RadioButton("Sex",true)男       2、 @Html.RadioButtonFor(model=>model.Sex,true)男
            @Html.RadioButton("Sex",false)女            @Html.RadioButtonFor(model=>model.Sex,false)女

     这里的sex就是实体属性,数据类型是bool类型,它会自动匹配数据库的值,相同的选中

6、ASP.NET MVC 3 中如何引用js文件

     <script src="@Url.Content("~/Scripts/Calendar4.js")" type="text/javascript"></script>

     这里的Calendar4.js文件直接放在网站自动生成的Scripts文件夹中

7、ASP.NET MVC 3 文本框自定义单击事件 onclick事件

    有两种方式

          1、直接写html标签,和平时一样<input type="text" id="Birthday" name="Birthday" onclick="MyCalendar.SetDate(this)" value="@Model.Birthday" />

       2、这样写:@Html.TextBox("Birthday", Model.Birthday, new { onclick = "MyCalendar.SetDate(this)",style="width:500px;" })

    数据交互上1和2没什么大的区别,但是如果你写了验证,1是不会引用错误样式,2会自动关联错误样式。

8、ASP.NET MVC 3 使用下拉列表 DropDownList

   首先在控制器中需要得到一个SelectList控件放到上下文中(ViewData)

  控制器代码如下:           


private CRMDBContext db = new CRMDBContext();
var list = db.Partments.ToList();
ViewData["partmentDDL"] = new SelectList(list, "Id", "PartName",employee.PartmentID);
  视图中:   

?
1、 @Html.DropDownList("PartmentID", (SelectList)ViewData["partmentDDL"], "--this one--")

2、 @Html.DropDownListFor(model => model.PartmentID, (SelectList)ViewData["partmentDDL"], "--this one--")
      这里的PartmentID是实体属性,如果ViewData中的SelectList中存在PartmentID值则自动选中该值。"--this one--"在下拉列表中添加一个选项,如果不需要添加,则填null

9、ASP.NET MVC 3 具有键“XXX”的 ViewData 项属于类型“System.Int32”,但它必须属于类型“IEnumerable<SelectListItem>”。

  网上有人说是:错误主要原因是在提交处不认识原来的下拉列表(来自这里)他的解决方法是:在控制器中的接受处理的Action中重复构建DropDownList的代码,比如


public ActionResult Create()
        {
            var actionList = db.Actions.ToList();
            ViewData["actionDDL"] = new SelectList(actionList, "Id", "GetMoActName");
            var popedomList = db.Popedoms.ToList();
            ViewData["pepedomDDL"] = new SelectList(popedomList, "Id", "Property");
            return View();
        }

        //
        // POST: /ActionPopedoms/Create

        [HttpPost]
        public ActionResult Create(ActionPopedoms actionpopedoms)
        {
            var actionList = db.Actions.ToList();
            ViewData["actionDDL"] = new SelectList(actionList, "Id", "GetMoActName");
            var popedomList = db.Popedoms.ToList();
            ViewData["pepedomDDL"] = new SelectList(popedomList, "Id", "Property");

            if (ModelState.IsValid)
            {
                db.ActinPopedoms.Add(actionpopedoms);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(actionpopedoms);
        }
 大家注意这两个方法,第一个action方法是展示新增页面用的,也就是说你再其他地方点击新增功能时,通过这个方法在转到视图,这个视图就是新增页面,在这里方法里构建了两个下拉列表,当我们点击相应按钮确定新增后,请求就被第二个action方法,这个方法传进来的是一个实体对象(这里为什么是一个实体对象就不具体说明),在这里方法里面就是执行相关新增的功能的,在这里新增成功后会转到action方法index方法中,如果新增失败则转到当前页面(这里代码 return view(actionpopedoms)就是新增的页面),问题就出在这里,如果第二个方法没有重新构建下拉列表的代码,则这里返回当前页面后,页面就不认识第一个action方法中构建的下拉列表,所以页面最终报错是 具有键“XXX”的 ViewData 项属于类型“System.Int32”,但它必须属于类型“IEnumerable<SelectListItem>”。所以只需要确定第二个action方法里的操作不会报错就行了。如果你需要看错误信息,你可以try一下,并return view(错误信息)

10、ASP.NET MVC 3 在Razor view页面中如何导入命名空间呢

?
@using MyNamespace
11、ASP.NET MVC 3 中如何获得请求的Url路径 

?
string url = "";//url全部分
url = HttpContext.Current.Request.Url.ToString();
12、ASP.NET MVC 3 中 tempdata、viewdata、viewbag三者区别

     TempData ViewData ViewBag都可以用来保存数据,它们之间的区别如下: TempData保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。ViewData生命 周期和View相同,仅对当前View有效。 ViewBag和ViewData生命周期相同,也是对但前View有效,不同的是ViewBag的类型不再是字典的键值对结构,而是dynamic动态类型,属MVC3里面新增的部分。-------来自地址

13、ASP.NET MVC 3 中使用单选按钮Radiobutton

  这里为了应急所需,暂只介绍一种用法代码如下

  <div class="editor-field">
            @Html.RadioButton("Sex", Model.Sex, Model.Sex)
            男
            @Html.RadioButton("Sex", !Model.Sex, !Model.Sex)
            女
            @Html.ValidationMessageFor(model => model.Sex)
        </div>
时间: 2024-12-12 15:15:39

MVC常用的相关文章

MVC常用特性

MVC常用特性使用 简介 在以前的文章中,我和大家讨论如何用SingalR和数据库通知来完成一个消息监控应用. 在上一篇文章中,我介绍了如何在MVC中对MongoDB进行CRUD操作. 今天,我将继续介绍一些在开发中非常有用的MVC特性,如下: BindAttribute Remote HandleError HiddenInput BindAttribute 使用BindAttribute的目的是限制用户在提交form表单时使用合适且正确的值.当我们提交一个表单时,就会检查每一个实体上绑定的特

asp.net mvc常用的数据注解和验证以及entity framework数据映射

终于有时间整理一下asp.net mvc 和 entity framework 方面的素材了. 闲话少说,步入正题: 下面是model层的管理员信息表,也是大伙比较常用到的,看看下面的代码大伙应该不会陌生, 在此Model上我们用到了asp.net mvc的数据注解和验证,entity framework对数据库的映射 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.T

Spring MVC常用Jar包的描述

antlr-2.7.7.jar     ANTLR (ANother Tool for Language Recognition) 是一个PCCTS制定的语言工具,                                    它为他创建认定者,程序编译者,翻译者提供一个 包括 java,c#和C++在内的语法 描述框架,  使用from 多态查询语句时需要它.         cglib-2.1.3.jar            CGL (Code Generation Libray)

Spring MVC常用的注解类

一.注解类配置 要使用springmvc的注解类,需要在springmvc.xml配置文件中用context:component-scan/扫描: ? 二.五大重要的注解类 1.RequestMapping注解 RequestMapping注解类的使用方法 在Controller控制器类的类定义和方法定义处都可以标注@RequestMapping注解 DispatcherServlet截获请求后,就可以通过控制器上的@RequestMapping提供的映射信息确定请求所对应的处理方法 packa

Spring MVC 常用的注解

@Controller @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为 类名称开头字母小写,你也可以自己指定,如下 方法一: @Controller public class TestController {} 方法二:            @Controller("tmpController") public class TestController {} @RequestMapping [email protected]用来定义访

spring mvc常用注解的说明

最近一段时间学习了springboot,所以熟悉一下mvc中常用的注解,这样可以方便开发 简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她分成三类进行说明. 1. value, method: value:     指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明): met

spring mvc常用注解总结

1.@RequestMapping@RequestMappingRequestMapping是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法中),可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.RequestMapping请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径:最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求. @Controller @RequestMapping(val

Spring入门(十三):Spring MVC常用注解讲解

在使用Spring MVC开发Web应用程序时,控制器Controller的开发非常重要,虽然说视图(JSP或者是Thymeleaf)也很重要,因为它才是直接呈现给用户的,不过由于现在前端越来越重要,很多公司都开始采用前后端分离的开发模式,所以我们暂时可以将精力放在开发控制器上. 使用Spring MVC开发控制器主要使用以下7个注解: @Controller @RequestMapping @ResponseBody @RequestParam @PathVariable @RequestBo

Spring MVC常用注解

cp by http://www.cnblogs.com/leskang/p/5445698.html 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Control

Spring MVC 常用注解@Controller,@RequestMapping,Model和ModelAndView

[email protected] 用于指示Spring类的实例是一个控制器.Controller接口的实现类只能处理一个单一请求动作,而@Controller注解的控制器可以支持同时处理多个请求动作,更加灵活.Spring使用扫描机制查找应用程序中所有基于注解的控制器类.分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,而使用@RequestMapping注解的方法才是真正处理请求的处理器.为了保证能找到控制器,需要完成两件事情: 在Spring