MVC 4.0 学习中遇到的bug

时间:2022-09-04 22:24:04
MVC 4.0 学习中遇到的bug

 1.0 _ViewStart.cshtml 

_ViewStart.cshtml 里面的如果写了 <script src="/Scripts/jquery-1.8.2.js"></script>

jquery会加载在html标签外面,可能导致jquery调用出问题.(学习瀑布里时,就是因为这个问题,查了好久好久...)

所以,不建议在_ViewStart.cshtml里的以上写法.

 2.0 此请求已被阻止,...

用linq时,先排序才能skip,不排序直接skip会导致提示(很诡异的提示):
此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet

3.0 Response.End() 在MVC里,后续代码继续执行

webform下使用System.Web.HttpContext.Current.Response.End()首先引发了一个异常,在异常处理完(执行完catch中代码)后到执行Application_EndRequest();

System.Web.HttpContext.Current.Response.End()在webform下引发了异常而在ASP.NET MVC没有。

解决:return;

4.0 Edit之后,EF容器有代理对象,导致再次Where拿到的是之前的代理,只有 "sex", "nick_name", "msn", "qq", "email" 和"id" 这几个属性...不是全属性. 这是  Session[Keys.uinfo] 的的对象属性不完整.

public ActionResult UserInfo(dt_users model)
{
int uid = model.id;
userSer.Edit(model, new[] { "sex", "nick_name", "msn", "qq", "email"});
userSer.SaveChanges();
var x = Factory.GetDbContext().Set<dt_users>().Where(c => c.id == uid).FirstOrDefault(); ;
Session[Keys.uinfo] = x;
return Content("<script>alert('保存成功!');window.location='/personalCenter/userInfo';</script>");
}

待续...