ASP.NET MVC 使用动态类型传递数据

问题起因 在 Controller 中定义动态类型的对象传递给视图,报错无法找到成员。 Controller: public ActionResult Index() { ViewBag.User = new { name = "她和她的猫", age = 20 }; return View(); } 视图: 姓名:@ViewBag.User.name 年龄:@ViewBag.User.age 按道理来说,这样写是没问题的,但是运行后却说Model中不存在‘name’。 ...

2017-04-09 · 2 分钟 · 766 字 · CSharp

ASP.NET + jQuery + AJAX 实现用户登录

用户登录在网站中是不可或缺的功能,常见的方法就是使用Form表单将数据提交给后台,后台对帐号密码进行验证从而实现了用户登录。 随着技术的发展,一些网站开始使用 AJAX 的方式进行登录,登录成功后只会刷新局部,从而提升了用户体验。在本文中,将使用ASP.NET和jQuery来实现登录功能。 ...

2017-02-09 · 3 分钟 · 1428 字 · CSharp

ASP.NET 从客户端中检测到有潜在危险的 Request.Form 值

起因 今天在添加数据的时候系统抛出了下面这个错误,初步推断,应该是使用了ueditor编辑器传递的数据里面有未转义的html标签造成的。 System.Web.HttpRequestValidationException: 从客户端(details=&quot;&lt;h3&gt;关于我&lt;/h3&gt;&lt;p&gt;向支持者介...&quot;)中检测到有潜在危险的 Request.Form 值。 在 System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) 在 System.Web.HttpRequest.<>c__DisplayClass5.<ValidateHttpValueCollection>b__3(String key, String value) 在 System.Web.HttpValueCollection.EnsureKeyValidated(String key) 在 System.Web.HttpValueCollection.Get(String name) 在 System.Collections.Specialized.NameValueCollection.get_Item(String name) 在ASP.NET中,每一次接收数据,都会对数据进行检查,如果数据中包含非法字符串,就会抛出这个错误。这个错误更像是一个提醒,提醒你这里的数据会含有非法字符串,会对系统造成威胁,让你采取一些措施进行防范。在刚学习 ASP.NET 的时候遇到过这个错误,后来使用 Server.HtmlEncode() 函数将所有的 HTML 标签进行转义才解决了这个问题。接收数据已经过滤转义了,但还是出现这个的错误,让我有点懵,最后经过不断的调试和百度才找到了解决方法。 ...

2017-02-08 · 2 分钟 · 707 字 · CSharp

ASP.NET 使用 FormData 实现 AJAX 上传图片

图片上传在 Web 开发中应用十分广泛,我们平时发朋友圈、发微博都用到了上传图片。正好在项目中用到了 AJAX 上传图片,就顺便更新下博客。 关于 FormData FormData 是为序列化表以及创建与表单相同的数据(用于 XHR 传输)提供便利。FormData 翻译过来就是表单数据,说白了就是方便我们用它来进行 AJAX 操作,想要继续了解的朋友可以百度一下。 ...

2017-02-05 · 2 分钟 · 676 字 · CSharp

一言不和就造轮子之 CookieHelper

最近开始学 ASP.NET,然后发现 Cookie 的设置不像 PHP 简单粗暴(PHP Cookie用法),于是就造个轮子省事,注释很详细,这里就不再赘言。 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web;r namespace BuildWheel { /// <summary> /// Cookie辅助类 /// </summary> public class CookieHelper { /// <summary> /// 设置、删除、修改cookie /// </summary> /// <param name="cookieName">cookie名称</param> /// <param name="cookieValue">cookie值</param> /// <param name="expires">过期时间</param> public static void SetCookie(string cookieName, string cookieValue, DateTime expires) { HttpCookie cookie = new HttpCookie(cookieName) { Value = cookieValue, Expires = expires }; HttpContext.Current.Response.Cookies.Add(cookie); } /// <summary> /// 删除指定cookie /// </summary> /// <param name="cookieName">cookie名称</param> public static void DeleteCookie(string cookieName) { HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName]; if (cookie != null) { cookie.Expires = DateTime.Now.AddYears(-3); HttpContext.Current.Response.Cookies.Add(cookie); } } /// <summary> /// 清除所有cookie /// </summary> public static void ClearCookies() { HttpContext.Current.Request.Cookies.AllKeys.ToList().ForEach((e) => { HttpCookie cookie = HttpContext.Current.Response.Cookies[e]; cookie.Expires = DateTime.Now.AddYears(-3); HttpContext.Current.Response.Cookies.Add(cookie); }); } /// <summary> /// 获取cookie值 /// </summary> /// <param name="cookieName">cookie名称</param> /// <returns></returns> public static string GetCookieValue(string cookieName) { HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName]; string cookieValue = string.Empty; if (cookie != null) { cookieValue = cookie.Value; } return cookieValue; } } } 有错误欢迎指出~ ...

2016-12-06 · 2 分钟 · 552 字 · CSharp