ASP.NET MVC 3 常用
http://blog.csdn.net/churujianghu/article/details/7297358
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>
- 顶
ASP.NET MVC 3 常用的更多相关文章
- Asp .Net MVC中常用过滤属性类
/// <summary> /// /// </summary> public class AjaxOnlyAttribute : ActionFilterAttribute ...
- ASP.NET MVC中常用的ActionResult类型
常见的ActionResult 1.ViewResult 表示一个视图结果,它根据视图模板产生应答内容.对应得Controller方法为View. 2.PartialViewResult 表示一个部分 ...
- .Net Mvc学习——ASP.NET MVC中常用的ActionResult类型
一.定义 MVC中ActionResult是Action的返回结果.ActionResult 有多个派生类,每个子类功能均不同,并不是所有的子类都需要返回视图View,有些直接返回流,有些返回字符串等 ...
- ASP.NET MVC 的常用的HTML辅助方法笔记
Html.BeginForm() 输出<form>标签Html.EndForm() 输出</form>标签Html.Label() 输出<label>标签Html. ...
- asp.net mvc ViewBag常用操作
1.视图获取json类型数据 var str = '@(ViewBag.loginInfoList)'; if ($.trim(str).length>0) { re = new RegExp( ...
- 玩转Asp.net MVC 的八个扩展点
MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供的扩展点可以达到事半功倍的效果,另一方面Asp.net MVC优秀的设计和高质量的代码也值得我们去 ...
- 微冷的雨ASP.NET MVC之葵花宝典(MVC)
微冷的雨ASP.NET MVC之葵花宝典 By:微冷的雨 第一章 ASP.NET MVC的请求和处理机制. 在MVC中: 01.所有的请求都要归结到控制器(Controller)上. 02.约定优于配 ...
- Asp.net MVC 的八个扩展点
http://www.cnblogs.com/richieyang/p/5180939.html MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供 ...
- ASP.NET没有魔法——ASP.NET MVC 过滤器(Filter)
上一篇文章介绍了使用Authorize特性实现了ASP.NET MVC中针对Controller或者Action的授权功能,实际上这个特性是MVC功能的一部分,被称为过滤器(Filter),它是一种面 ...
随机推荐
- Cocos2dx源码赏析(2)之渲染
Cocos2dx源码赏析(2)之渲染 这篇,继续从源码的角度来跟踪下Cocos2dx引擎的渲染过程,以此来梳理下Cocos2dx引擎是如何将精灵等元素显示在屏幕上的. 从上一篇对Cocos2dx启动流 ...
- 使用FFMPEG 压缩png图片 与tinypng压缩结果对比
Tinypng https://tinypng.com/ 一个在线png压缩工具 FFmpeg https://ffmpeg.org/download.html 原图 903 kb Tinypng压 ...
- linux命令系列 stat & touch
1. stat - display file or file system status stat命令主要用于显示文件或文件系统的状态,详细信息 事实上,stat命令显示的是文件的I节点信息.Linu ...
- PHP--面向对象的设计原则
三大特性是:封装.继承.多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 封装是面向对象的特征之一,是对象和类概念的主要特 ...
- 【Oracle】存储过程在字符串单引号'内拼接单引号'
http://blog.csdn.net/u011704894/article/details/44976557 一般变量里面接3个单引号 eg: 'DELETE FROM RDM_SUPP_DATA ...
- 20162328蔡文琛 week05 大二
20162328 2017-2018-1 <程序设计与数据结构>第5周学习总结 教材学习内容总结 集合是收集元素并组织其他对象的对象. 集合中的元素一般由加入集合的次序或元素之间的某些固有 ...
- ubuntu安装php-curl拓展
首先输入apt-cache search curl | grep php查询curl的php支持名字可能会返回如下内容:php5-curl - CURL module for php5安装:sudo ...
- c++中的函数重载
函数多态也称为函数重载. (1)函数重载指的是可以有多个同名的函数,因此对名称进行了重载. (2)函数重载的关键在于函数的参数列表,也称为函数特征标.如果两个函数的参数数目和参数类型相同,同时参数的排 ...
- iOS开发值得收藏的博客
http://kobedai.me/ objc.io PS:经典,内容深而广objc中国NSHipster PS:很多小细节NSHipster 中文版唐巧的技术博客 PS:LZ是唐巧的脑残粉…OneV ...
- DispatcherServlet的作用
DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好 ...