博客改版,采用时髦的MVC,边学边用,也记录了遇到的一些问题。
_ueditor_page_break_tag_
1. mvc时间格式
[DisplayFormat(DataFormatString ="{0:yyyy-MM-dd HH:mm}")]
2. code first设置主键
EF将会默认的给名字为ID的或者带ID的设置为主键
http://www.byywee.com/page/M0/S569/569496.html
codefirst学习: http://msdn.microsoft.com/zh-cn/jj679962
3. mvc路由自定义
添加到路由表中的路由顺序非常重要。我们的新自定义Blog路由在现有的Default路由前面。如果你将这个顺序颠倒过来,那么Default路由将总是被调用,而不是自定义路由。
http://www.tracefact.net/Asp-Net/AspNetMvc-Routing.aspx
4.codefirst设置默认值
public classMyBaseClass
{
publicMyBaseClass()
{
DateCreated = DateTime.Now;
}
publicDatetime DateCreated {get;set; }
}
5.split的使用
varquery = db.Articles.Where(u => u.Enabled ==true).ToList();
foreach(Articleainquery)
{
if(a.Content !=null)
{
a.Content = a.Content.Split(new string[] {"<!--more-->","_ueditor_page_break_tag_"},StringSplitOptions.RemoveEmptyEntries)[0];
}
}
returnView(query);
6.ViewBag的使用
Controller里定义ViewBag.Title = article.Title;
页面调用ViewBag.Title = (ViewBag.Title) +" |悠乐小呆";
7.MVC Ueditor的使用
编辑器等内容我们可以通过FormCollection来接收,从而实现内容保存
http://www.cnblogs.com/weixing/archive/2013/08/28/3287002.html
8.HTML
@Html.ActionLink
@Html.DisplayFor
@Html.DisplayTextFor
9.用户登录验证
FormsAuthentication.SetAuthCookie(UserInfo.Account,false);
用户信息注销
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResultLogOff()
{
//取消Session会话
Session.Abandon();
//删除Forms验证票证
FormsAuthentication.SignOut();
returnRedirectToAction("Index","Home");
}
排除验证:
http://www.mrhuo.com/Article/Details/470/A-Attribute-For-MVC4-Project-Used-To-Validate-User-Login
10. 把Asp.net MVC4.0(net framework4.5) 部署到window server 2003上的解决方案
最基本的就是把属性里的目标net framework改成4.0
update-package –reinstall
然后新建个目标框架式4.0的项目 把需要的引用找到 添加
http://www.cnblogs.com/zjypp/p/3614454.html
最好还是新建项目的时候就选择4.0的
11.路由以html结尾出现404错误
在webconfig里加入
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
或者(推荐)
参考:
http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
<!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. -->
</modules>
12. 在MS-SQLServer中,如何在不同的数据库之间复制表?
在MS-SQLServer中,如何在不同的数据库之间复制表?
insert into 目标数据库.dbo.目标表名(字段1...字段n)
select 段1...字段n from 源数据库.dbo.源表名
或
select 段1...字段n into 目标数据库.dbo.目标表名 from 源数据库.dbo.源表名
13. MvcPager的使用
引用MvcPager.dll
controller代码:
usingWebdiyer.WebControls.Mvc;
//默认分页显示数目
private const intdefaultPageSize = 5;
PagedList<Article> m = query.ToPagedList(id ?? 1, defaultPageSize);
view页面代码:
@usingWebdiyer.WebControls.Mvc
@usingULBlog.Models
@modelPagedList<ULBlog.Models.Article>
@Html.Pager(Model,new PagerOptions
{
PageIndexParameterName ="id",
ShowPageIndexBox =false,
FirstPageText ="首页",
PrevPageText ="上一页",
NextPageText ="下一页",
LastPageText ="末页",
ShowGoButton=false
})
http://www.cnblogs.com/hswh/p/3171112.html
14.Html.DropDownListFor
弱类型和强类型
http://blog.csdn.net/w809026418/article/details/6740496
设置默认值
http://www.cnblogs.com/Arvin-Lai/archive/2013/04/24/3040673.html
不存在具有键“Term”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
@Html.DropDownListFor(model => model.Term, ViewData["Slug"]as IEnumerable<SelectListItem>)
14.ASP.NET MVC 网站在win2008上不能运行,提示404
需要打补丁:KB980368
http://support.microsoft.com/kb/980368
15.mssql新建登录名不能新建数据库
用户权限设置sysAdmin
16.asp.net网站应用池回收后 每次第一用户访问都很慢
安装Application Initialization Module for IIS 7.5
http://www.iis.net/downloads/microsoft/application-initialization
详解:http://www.cnblogs.com/chehaoj/p/3432100.html
http://huan-lin.blogspot.com/2014/03/writing-aspnet-background-tasks.html
记得重启
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization
17. mvc修改部分数据
第一种
try
{
//1.将实体对象a.加入EF对象容器中,并b.获取 伪包装类对象
DbEntityEntry<BlogArticle> entry = db.Entry<BlogArticle>(model);
//2.将包装类对象的状态设置为unchanged
entry.State = System.Data.EntityState.Unchanged;
//3.设置 被改变的属性
entry.Property(a => a.ATitle).IsModified =true;
entry.Property(a => a.AContent).IsModified =true;
entry.Property(a => a.ACate).IsModified =true;
//4.提交到数据库 完成修改
db.SaveChanges();
//5.更新成功,则命令浏览器 重定向 到/Home/List方法
returnRedirectToAction("Index","Home");
}
catch(Exceptionex)
{
returnContent("修改失败~~~"+ ex.Message);
}
参考:http://blog.csdn.net/yisuowushinian/article/details/17854955
第二种,普通的EF修改
第三种,
db.Entry(article).State = EntityState.Modified;
db.SaveChanges();
18.EditorFor不可更改样式,换用TextBoxFor
@Html.TextBoxFor(model => model.Description,new{ @class ="ul-text"})
19. asp.net mvc返回原来页面
@Html.ActionLink("编辑","Edit",new{ id = item.ID, returnUrl = Request.Path.ToString() })
参数里添加stringreturnUrl)
returnRedirect(returnUrl);
asp.net获取当前网址urlhttp://www.cnblogs.com/190196539/archive/2011/12/13/2286072.html
20. asp.net mvc按钮事件
<a href="javascript:void(0);" onclick="return UpdateStatus('@item.ID');">@(item.Enabled==true?"隐藏":"发布")</a>
functionUpdateStatus(id){
if(confirm('确定操作?')){
$.ajax({
type:"POST",
url:"/Article/ChangeStatus",
data:"id="+ id,
success:function(context) {
alert(context);
window.location.reload();
}
});
}
}
[HttpPost]
public ActionResultChangeStatus(stringid)
{
//string returnUrl = Request["ReturnUrl"];
stringresult ="";
inttempID = 0;
try
{
tempID =Convert.ToInt32(id);
}
catch{ }
if(tempID != 0)
{
varquery = db.Articles.Where(u => u.ID == tempID);
if(query.Count() > 0)
{
ArticlearticleInfo = query.First();
if(articleInfo.Enabled ==true)
{
articleInfo.Enabled =false;
result ="隐藏文章成功!";
}
else
{
articleInfo.Enabled =true;
articleInfo.dtPublish =DateTime.Now;
result ="发布文章成功!";
}
db.SaveChanges();
}
}
else
{
result ="不存在该文章!";
}
returnContent(result);
}
参考:http://www.bdqn.cn/news/201305/9305.shtml
其他方法:http://www.cnblogs.com/wuchang/archive/2010/01/29/1658916.html
http://blog.csdn.net/kufeiyun/article/details/7707860
21.bootstrap导航设置三层的
参考:http://www.vipaq.com/Article/View/blog/413.html
博客园评论:http://www.cnblogs.com/pockry/p/3293022.html
http://log.gggu.org/articles/2013/01/15/1358234821572.html
悬浮显示下拉菜单:http://www.zhuhuicong.cn/774.html
22.使用wysiwyg富文本编辑器传值问题
在submit前将div的html内容赋给hidden,再传给controller
23.远程连接sql2008
注意设置防火墙
参考:http://jingyan.baidu.com/article/6c67b1d6ca06f02787bb1ed1.html