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

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

示例代码:

  1. publicclass Movie
  2. {
  3. publicint ID { get; set; }
  4.  
  5. [Required(ErrorMessage="必须输入标题")]
  6. publicstring Title { get; set; }
  7.  
  8. [Required(ErrorMessage="必须输入发行日期")]
  9. public DateTime ReleaseDate { get; set; }
  10.  
  11. [Required(ErrorMessage="必须制定种类")]
  12. publicstring Genre { get; set; }
  13.  
  14. [Required(ErrorMessage="必须输入票价")]
  15. [Range(,,ErrorMessage="票价必须在 1 到 100 元之间")]
  16. publicdecimal Price { get; set; }
  17.  
  18. [StringLength(,ErrorMessage="最多允许输入5个字符")]
  19. publicstring Rating { get; set; }
  20. publicstring Description { get; set; }
  21. }

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)

  控制器代码如下:

  1. private CRMDBContext db = new CRMDBContext();
  2. var list = db.Partments.ToList();
  3. ViewData["partmentDDL"] = new SelectList(list, "Id", "PartName",employee.PartmentID);

视图中:   

  1. 1 @Html.DropDownList("PartmentID", (SelectList)ViewData["partmentDDL"], "--this one--")
  2.  
  3. 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的代码,比如

  1. public ActionResult Create()
  2. {
  3. var actionList = db.Actions.ToList();
  4. ViewData["actionDDL"] = new SelectList(actionList, "Id", "GetMoActName");
  5. var popedomList = db.Popedoms.ToList();
  6. ViewData["pepedomDDL"] = new SelectList(popedomList, "Id", "Property");
  7. return View();
  8. }
  9.  
  10. //
  11. // POST: /ActionPopedoms/Create
  12.  
  13. [HttpPost]
  14. public ActionResult Create(ActionPopedoms actionpopedoms)
  15. {
  16. var actionList = db.Actions.ToList();
  17. ViewData["actionDDL"] = new SelectList(actionList, "Id", "GetMoActName");
  18. var popedomList = db.Popedoms.ToList();
  19. ViewData["pepedomDDL"] = new SelectList(popedomList, "Id", "Property");
  20.  
  21. if (ModelState.IsValid)
  22. {
  23. db.ActinPopedoms.Add(actionpopedoms);
  24. db.SaveChanges();
  25. return RedirectToAction("Index");
  26. }
  27. return View(actionpopedoms);
  28. }

大家注意这两个方法,第一个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页面中如何导入命名空间呢

  1. @using MyNamespace

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

  1. string url = "";//url全部分
  2. 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>

14、ASP.NET MVC 3 控制器中获取页面标签信息

       这个主要通过form表单获取页面提交的数据

view代码:

  1. @using (Html.BeginForm()) {
  2. @Html.ValidationSummary(true)
  3. <fieldset>
  4. <legend>Album</legend>
  5.  
  6. @Html.HiddenFor(model => model.AlbumId)
  7.  
  8. <div class="editor-label">
  9. @Html.LabelFor(model => model.GenreId)
  10. </div>
  11. <div class="editor-field">
  12. @Html.DropDownList("GenreId",string.Empty)
  13. @Html.ValidationMessageFor(model => model.GenreId)
  14. </div>
  15. </fieldset>
  16. }

ASP.NET MVC 3 入门级常用设置、技巧和报错的更多相关文章

  1. MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed

    MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed 1.安装完MySQL设置root密码报错如下 [root@vm ...

  2. mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    注:本文来源于<  mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy r ...

  3. error_reporting() 设置 PHP 的报错级别并返回当前级别

    error_reporting() 设置 PHP 的报错级别并返回当前级别. 语法 error_reporting(report_level) 如果参数 level 未指定,当前报错级别将被返回.下面 ...

  4. ASP.NET MVC+EF5 开发常用代码

      Asp.Net Mvc,EF 技术常用点总结 1.Asp.Net MVC a)获得当前控制器名和当前操作的名称(action) 1.Action 中 RouteData.Values[" ...

  5. ASP.NET MVC 使用TryUpdateModel 更新的技巧

    有使用 ASP.NET MVC 的朋友應該會對於 TryUpdateModel 有一定的認知,他不但可以利用 Metadata 來做欄位的驗證確保資料的正確性,也可以指定更新的條件以及不更新的條件來達 ...

  6. ASP.NET MVC中的Session设置

    最近在ASP.NET MVC项目中碰到这样的情况:在一个controller中设置了Session,但在另一个controller的构造函数中无法获取该Session,会报"System.N ...

  7. 为Asp.net MVC中的RenderSection设置默认内容

    1. RenderSection的简单介绍 Asp.net MVC中提供了RenderSection方法,这样就能够在Layout中定义一些区块,这些区块留给使用Layout的view来实现比如我们定 ...

  8. ASP.NET MVC中几个运用技巧

    1. Razor Helpers 的运用:例如,定义好 ViewBag.Message = "Welcome to ASP.NET MVC!";我要在界面上显示"Welc ...

  9. ASP.NET MVC中MaxLength特性设置无效

    在ASP.NET MVC项目中,给某个Model打上了MaxLength特性如下: public class SomeClass { [MaxLength(16, ErrorMessage = &qu ...

随机推荐

  1. Dataguard三种保护模式

    Oracle Data Guard 提供三种高水平的数据保护模式来平衡成本.可用性.性能和事务保护.可以使用任意可用管理界面来轻松地设置这些模式.要确定适当的数据保护模式,企业需要根据用户对系统响应时 ...

  2. iE6、7、8、9、10、11兼容的Cookie

    <%@ Master Language="C#" Debug="true" AutoEventWireup="true" Inheri ...

  3. hdu 3341(ac自动机+状态压缩)

    题意:容易理解... 思路:首先一开始容易想到要用到dp,开设一个dp[41][41][41][41][501]的数组来解决,但是明显内存已经超出范围了,于是就想如何减少内存呢?只要知道A.T.C.G ...

  4. 位图引起的内存溢出OutOfMemory解决方案

    一.问题描述:Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由Android4.0变成了Android4.1后,拍照出现了OutOfM ...

  5. longest common str

    #include <vector> #include <iostream> #include <string> using namespace std; int l ...

  6. IOS release 版本的时候 去掉输出log NSLog

    在.pch文件中添加下面一段 #ifndef __OPTIMIZE__ #define NSLog(...) NSLog(__VA_ARGS__) #else #define NSLog(...) { ...

  7. javascript 面向对象整理

    整理一下js面向对象中的封装和继承. 1.封装 js中封装有很多种实现方式,这里列出常用的几种. 1.1 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例 ...

  8. 关于duilib中的list的扩展探索

    原文地址:http://blog.csdn.net/tragicguy/article/details/21893065 今天在做一个程序的界面时,需要在一个列表中显示除文字以外的其他控件,如:Edi ...

  9. 【原】Storm序列化

    5. Storm高级篇 序列化 Dynamic typing Custom serialization Java serialization Component-specific serializat ...

  10. Hibernate初认识以及HelloWorld

    一.Hibernate初认识 1. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 2.对 ...