【原创】ASP.NET MVC3开发中遇到问题以及解决方法
2012-03-22 22:06
1056 查看
小弟刚学MVC3,在学习过程中遇到了很多的问题,现在把已遇到问题总结出来,以后陆续更新。方便和我一样的新手。。
1.手写Model类,EF执行错误找不到表对象。
2.加载不同的Layout,在_ViewStart.cshtml中添加逻辑
3.图片image设置动态url
a.Detail/Creat/Edit页面:
b.List页面:
4.用户登录/权限
配置文件中其中Form验证
5.IIS6配置MVC3
6.View中控件样式设置
7.TextArea设置Rows,Columns(第2个参数为rows,第3个参数为columns)
8.文件上传,注意加粗红色部分
View代码:
Controller代码:
9.foreach,使用ViewBag动态特性
Controller代码:
View代码:(注意:使用ViewBag,不会有代码提示。)
10.DropDownList绑定
Controller代码:
View代码:
11.查询
a.EF4.1中支持使用sql:
DbSet<BlogMaster>set= context.Set<BlogMaster>();
List<BlogMaster> list =set.SqlQuery("select *from BlogMaster where UserId='3'").ToList();
b.使用linq to entity framework:
DemoDBEntities context =new DemoDBEntities();
DbSet<BlogMaster>set= context.Set<BlogMaster>();
var result = from u inset.ToList()
where u.UserID ==3
select u;
c.使用labmda查询:
var list =set.Where(o => o.UserID ==3);
var listGroup =set.GroupBy(o => o.UserID);
12.输出html标签
13.@使用
输出@符号:@@
输出Email地址:Razor模板会自动识别出Email地址,所以不需要我们进行任何的转换。而在代码块中,只需要使用 @:Tom@gmail.com 即可。@:表示后面的内容为文本。
输出HTML代码(包含标签):直接输出,string html = "<font color='red'>文本</font>"; @html
输出HTML内容(不包含标签):有两种方法,
第一种:IHtmlString html=new HtmlString("<font color='red'>文本</font>"); @html;
第二种:string html = "<font color='red'>文本</font>"; @Html.Raw(html);
未完。。待续。。。。
1.手写Model类,EF执行错误找不到表对象。
[TableAttribute("ProductEntity")] public class ProductEntity{}
2.加载不同的Layout,在_ViewStart.cshtml中添加逻辑
@{if (Request.Url.AbsoluteUri.Contains("Manage")) { Layout = "~/Views/Shared/_MLayout.cshtml"; }else{ Layout = "~/Views/Shared/_LayoutLogin.cshtml"; } }
3.图片image设置动态url
a.Detail/Creat/Edit页面:
@model TaiQiu.Models.ProductEntity <img id="preview" src="@Html.DisplayFor(model => model.PicUrl)"/>
b.List页面:
@model IEnumerable<TaiQiu.Models.ProductEntity> @foreach (var item in Model) { <img src="@item.PicUrl" alt="@item.Title"/> }
4.用户登录/权限
//验证用户成功后,将用户写入cookie System.Web.Security.FormsAuthentication.SetAuthCookie(_user, false); //后台Controller中添加Authorize,如果可以配置Users/Role [Authorize(Users/Role = 允许账号/角色)] public class ManageController : Controller{}
配置文件中其中Form验证
<authentication mode="Forms"> <forms loginUrl="~/Login/" timeout="2880" /> </authentication>
5.IIS6配置MVC3
找不到 System.Web.Razor,System.Web.MVC 等。需要把开发环境下对应的dll复制到服务器bin文件下
6.View中控件样式设置
@Html.TextAreaFor(model => model.Infor, new { style = "width:800px;height:400px" }) 或者 @Html.TextAreaFor(model => model.Infor, new { @class=样式名})
7.TextArea设置Rows,Columns(第2个参数为rows,第3个参数为columns)
@Html.TextAreaFor(model => model.FileInfo,5,5, new { style="width:300px;height:100px;"})
8.文件上传,注意加粗红色部分
View代码:
@using (Html.BeginForm("actionName", "cotrollerName", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="FilePath" id="FilePath" /> }
Controller代码:
HttpPostedFileBase file = Request.Files[0] as HttpPostedFileBase; if (file.FileName != "") { //code }
9.foreach,使用ViewBag动态特性
Controller代码:
var recommendporduct = PE.ProductEntity.Where(a => a.Recommend).Take(5); ViewBag.rplist = recommendporduct; return View();
View代码:(注意:使用ViewBag,不会有代码提示。)
@foreach (var item in ViewBag.rplist) { <div class="rught_cptxt2"> <ul> <li class="rught_cpimg1"><a href="#"> <img src="@item.PicUrl.Trim()" border="0" /></a></li> <li class="rught_cptxt1"><a href="#">@item.Title</a></li> </ul> </div> }
10.DropDownList绑定
Controller代码:
//类别 public SelectList GetSL() {//此处静态数据,可以使用EF读取数据库 List<SelectListItem> list = new List<SelectListItem> { new SelectListItem(){Value="0",Text="新闻资讯"}, new SelectListItem(){Value="1",Text="技术文章"} }; return new SelectList(list, "Value", "Text"); } public ActionResult Create() { ViewBag.ddl = GetSL(); return View(); }
View代码:
//引号中对应ViewBag中的值 @Html.DropDownList("ddl")
或者使用强类型(将GetSL()静态方法放在类中,直接调用。)
@Html.DropDownListFor(model => model.IsTechnology, GetSL(), "请选择")
11.查询
a.EF4.1中支持使用sql:
DbSet<BlogMaster>set= context.Set<BlogMaster>();
List<BlogMaster> list =set.SqlQuery("select *from BlogMaster where UserId='3'").ToList();
b.使用linq to entity framework:
DemoDBEntities context =new DemoDBEntities();
DbSet<BlogMaster>set= context.Set<BlogMaster>();
var result = from u inset.ToList()
where u.UserID ==3
select u;
c.使用labmda查询:
var list =set.Where(o => o.UserID ==3);
var listGroup =set.GroupBy(o => o.UserID);
12.输出html标签
@Html.Raw(内容)
13.@使用
输出@符号:@@
输出Email地址:Razor模板会自动识别出Email地址,所以不需要我们进行任何的转换。而在代码块中,只需要使用 @:Tom@gmail.com 即可。@:表示后面的内容为文本。
输出HTML代码(包含标签):直接输出,string html = "<font color='red'>文本</font>"; @html
输出HTML内容(不包含标签):有两种方法,
第一种:IHtmlString html=new HtmlString("<font color='red'>文本</font>"); @html;
第二种:string html = "<font color='red'>文本</font>"; @Html.Raw(html);
未完。。待续。。。。
相关文章推荐
- ASP.NET MVC3开发中遇到问题以及解决方法
- ASP.NET MVC3开发中遇到问题以及解决方法
- asp.net mvc 2 简简单单做开发 使用DataContext扩展方法Find<TEntity>(TEntity obj) 遇到的问题
- [原创]经历:asp.net oracle 部署问题以及解决方法
- EF Database First with ASP.NET MVC: Creating the Web Application and Data Models开发遇到问题的解决办法
- 我在安装TFS 2008的时候遇到的问题以及解决方法一windows 2003 iis中总是不出现ASP.NET 2.0
- 中文VS2008中安装ASP.NET MVC框架出现问题的解决方法之完整版
- ios 开发中遇到的问题总结以及解决方法
- 解决asp.net 以及MVC中上传文件大小限制的问题
- 【Android】android开发过程遇到的问题以及解决方法总结
- asp.net开发与web标准的冲突问题的一些常见解决方法
- Asp.net 中的GridView导出遇到的两个问题和解决方法
- Asp.net中的GridView导出遇到的两个问题和解决方法
- 解决asp.net跨站点请求伪造的简单手段以及遇到的问题
- 安卓app开发遇到的问题以及解决方法
- ASP.NET Core2.0 使用VSCode 版本1.13.1工具 开发控制台运行出现中文乱码问题及解决方法
- ASP.NET MVC 开发中遇到的两个小问题
- ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
- 解决asp.net mvc UpdateModel更新对象后出现null问题的方法