有关在asp.net中显示用户消息的好方法的建议吗?
|
我有一个充满页面和用户控件的应用程序,其中许多都有一个或多个标签控件,用于向用户显示各种不同的消息. 示例:通常在Company.aspx页面上使用的AddCompany.ascx用户控件(使用App.Master MasterPage)上面有一个名为“OutOfCreditLabel”的标签,文字=“错误:你不能创建一个新的公司,因为你出去了信用“.代码检查信用额度并在需要时显示标签. 我想摆脱所有这些标签,只需要一个我可以从任何地方调用的方法 ShowUserMessage("Text goes here");
在之前的项目中,我已将其作为主页面上的单个标签和.master.cs中的公共方法实现 – 只要页面具有该行 <%@ MasterType VirtualPath="~/App.master" %> 在它,这工作 – 但我无法让它用于用户控件(.ascx.cs).这有诀窍吗? 或者,还有更好的方法? 对于可在站点中的任何位置使用的“全局”用户消息方法,您会建议什么? 也许是任何不错的jQuery解决方案? 更新 我需要一个可以从代码隐藏(页面或用户控件)调用的方法,然后将向用户显示我指定的任何文本,例如stackoverflow在您下次访问网站时如何告诉您有关问题的新答案.它可以在窗口的顶部(如SO)或页面的某个位置,无关紧要.重要的是它是一种“全局”方法,而不是各种各样的javascript警报和asp:标签遍布项目中的每个其他页面和用户控件. 像这样的场景: 用户单击我页面上“widget manager”用户控件上的“Create Widget”按钮.在事件处理程序中: if (User.IsOutOfCredit)
{
ShowUserMessage("Sorry,you cannot create widgets; you are out of credit.");
}
这导致用户看到“抱歉,你不能创建小部件;你没有信用.”无论是在页面中的弹出页面还是红色文本中,或者像StackOverflow一样在顶部,一切都很好 那有意义吗? 解决方法为什么不是一个简单的HTML“老派”扩展方法? (即静态方法)namespace Web.Helpers
{
public class HtmlHelpers
{
public static string Label(string target)
{
var dynamicText = SomeWhere.GetSomeCoolText();
return String.Format("<label for='{0}'>{1}</label>",target,dynamicText);
}
}
}
然后在你的HTML中: <%= HtmlHelpers.Label("sometarget") =>
在主母版页中,只需导入命名空间: <%@ Import Namespace="Web.Helpers" %> 更新问题后编辑 好的,我看到你现在要做的事情.我建议所有客户端都这样做. 也就是说,在您的主母版页中,创建一个最初隐藏的< div>具有唯一ID: <div id="message" style="display: none"></div> 然后在Web项目的某处创建一个帮助器方法,生成一些脚本. public void DisplayMessage()
{
string message = SomeWhere.GetSomeCoolText();
StringBuilder script = new StringBuilder();
script.AppendFormat("$('message').show().append("<span>{0}</span>")",message);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),script.ToString(),true);
}
当然,这只是一个指导原则.您不必使用jQuery,您不必在方法中对脚本进行硬编码.您可以创建一个接受字符串并修改div的HTML的JavaScript函数,然后只需调用该函数. 这一切都取决于你的“消息”有多复杂,如果你需要特殊的服务器控制,国际化等等. 但这肯定是实现你想要的最简单方法(恕我直言). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 我可以从Model类(而不是控制器)添加ModelSt
- asp.net-mvc – 单元测试MVC控制器
- asp.net-core – dotnet publish不会发布正确的appsettings
- ASP.NET MVC 4和ExtensionlessUrlHandler
- asp.net – 第一个事件?主页Page_Load或内容页Page_Load
- asp.net-mvc – 保存为“BodyPart_3ded2bfb-40be-4183-b789
- asp.net-mvc – 如何在MVC3中创建一个隐藏字段?
- asp.net – .NET Application_BeginRequest – 如何获取用户
- ASP.NET /数据库性能清单
- asp.net-mvc – Jasmine在一个单独的测试项目中
- 如何在ASP.NET MVC中扩展ValidationSummary HTML
- asp.net-mvc – 如何在ASP.NET MVC中阻止JSON序列
- asp.net – 在序列化“System.Reflection”类型的
- asp.net – OnClientClick中的服务器标记
- asp.net – 如何使用带有TemplateFields的Object
- 如何在Asp.Net Mvc中进行Basecamp风格的账户?
- asp.net – 什么是使用jQuery的一些利弊?
- ASP.NET MVC问题配置表单认证部分
- asp.net – 如何强制实体框架插入标识列?
- asp.net – 为什么在此RegEx中订购事项需要更改?
