我正在使用ASP.Net MVC开发一个工作板网站,并希望阻止任何电子邮件或网站地址对未注册用户可见。
因此,例如,如果雇主发布工作并在说明中包含某些内容,例如“申请发送电子邮件至myemail@email.com”,我希望它显示“申请发送电子邮件至隐藏链接 - 请登录或注册'或相关的文字。当他们登录链接然后可用。
我仍然处于ASP.Net MVC的学习阶段,所以我不确定从哪里开始。我不确定这是否是正确的做法,或者是否有替代方法。
非常感谢您的帮助。
答案 0 :(得分:0)
使用regex search在发布中查找电子邮件地址,并将其替换为未注册用户所需的链接。
<强> [更新] 强>
public ActionResult ShowPosting()
{
var description = descriptionFromDB();
if(!registeredUser)
{
model.Description = logicToReplaceTheEmailAddress(description);
}
else
{
model.Description= description;
}
return View(model);
}
答案 1 :(得分:0)
only777,
通过为电子邮件地址创建DisplayTemplate并运行您的代码,您可能会得到最好的服务。这是我的意思的一个例子。在你的观点内:
<%: Html.DisplayFor( m => m.Email, "ViewIfAuthenticatedTemplate" ) %>
然后在views / shared / DisplayTemplates下,添加一个名为ViewIfAuthenticatedTemplate.ascx的项目并向其添加以下代码:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<% if(Request.IsAuthenticated) { %>
<%: Model %>
<% } else {%>
<%: Html.ActionLink("hidden link - please login or register", "MyAction", "MyController") %>
<% } %>
不确定语法是否100%正确,但你得到了主旨..
[edit] - 实际上,您可以将此DisplayTemplate用于任何未经过身份验证时必须隐藏的文本。