博客改版,采用时髦的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; }

}

http://social.msdn.microsoft.com/Forums/en-US/a091ccd6-0ba8-4d4f-8f5e-aafabeb258e4/setting-default-value-for-code-only?forum=adonetefx

 

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);

http://stackoverflow.com/questions/19280829/request-isauthenticated-is-false-after-using-formsauthentication-setauthcookie

用户信息注销

[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.0net framework4.5 部署到window server 2003上的解决方案

最基本的就是把属性里的目标net framework改成4.0

update-package –reinstall

http://social.msdn.microsoft.com/Forums/zh-CN/3f3436cb-5c0b-49a4-82c3-8829f830eec8/how-to-reinstall-nuget-packages-installed-using-a-different-target-framework?forum=netfxbcl

然后新建个目标框架式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前将divhtml内容赋给hidden,再传给controller

 

23.远程连接sql2008

注意设置防火墙

参考:http://jingyan.baidu.com/article/6c67b1d6ca06f02787bb1ed1.html



最后修改:2014 年 06 月 12 日
如果觉得我的文章对你有用,请随意赞赏