asp.net-mvc-3 – 检查ViewBag是否具有属性,以有条件地注入JavaS
发布时间:2020-12-15 19:33:23 所属栏目:asp.Net 来源:网络整理
导读:考虑这个简单的控制器: Porduct product = new Product(){ // Creating a product object;};try{ productManager.SaveProduct(product); return RedirectToAction("List");}catch (Exception ex){ ViewBag.ErrorMessage = ex.Message; return View("Create"
考虑这个简单的控制器:
Porduct product = new Product(){ // Creating a product object; }; try { productManager.SaveProduct(product); return RedirectToAction("List"); } catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; return View("Create",product); } 现在,在我的创建视图中,我想检查ViewBag对象,看看它是否有Error属性。如果它有error属性,我需要注入一些JavaScript到页面中,以显示错误消息给我的用户。 我创建了一个扩展方法来检查: public static bool Has (this object obj,string propertyName) { Type type = obj.GetType(); return type.GetProperty(propertyName) != null; } 然后,在创建视图中,我写了这行代码: @if (ViewBag.Has("Error")) { // Injecting JavaScript here } 但是,我得到这个错误:
任何想法? 解决方法
你的代码不工作,因为ViewBag是一个
dyanmic object不是一个’真实’类型。
以下代码应该工作: public static bool Has (this object obj,string propertyName) { var dynamic = obj as DynamicObject; if(dynamic == null) return false; return dynamic.GetDynamicMemberNames().Contains(propertyName); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Core应用中与第三方IoC/DI框架的整合
- asp.net – 是否有可能欺骗或重用VIEWSTATE或检测它是否受到
- asp.net-mvc – ModelState.AddModelError编码HTML
- ASP.NET MVC如何连接到ASP.NET?
- 在IIS 7.5上运行的ASP.NET应用程序上强制Https
- C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位
- asp.net-mvc – 在ASP.NET MVC应用程序下将ASP.NET Web API
- asp.net中.aspx页面中各种符号的含义
- asp.net – 连接到源文件XYZ的撤消管理器时出错
- asp.net – BC30560:’default_aspx’在命名空间’ASP’中
推荐文章
站长推荐
热点阅读