我正在尝试使用MVC3和强类型建模创建电子邮件链接。我希望电子邮件的主题包含类似于:
的#符号Request #56
我最初的尝试看起来像:
<a href = "mailto:@Model.Email?subject=Request #@Model.ID">@Model.Name</a>
它产生了我认为完美的HTML:
<a href="mailto:john.stone@nowhere.com?subject=Request #5">John Stone</a>
我发现Internet Explorer不喜欢主题中的#符号。如果我点击上面的“链接”,主题将设置为:
Request
在这里搜索后,我发现我需要使用%23来代替#。所以我的第二次尝试看起来像:
<a href = "mailto:@Model.Email?subject=Request %23 @Model.ID">@Model.Name</a>
这导致以下结果:
Request # 56
关闭,但我不想要#和数字之间的空格。
如何在没有空格的情况下正确使用#键?
我正在使用MVC3并尝试在IE8中使用它。
*添加了关于第一次尝试产生html以及IE如何处理主题的一些细节
解 实际上有两个问题正在发生。
首先是IE不允许主题文本中的#。所以#的任何实例都需要用%23替换。
第二个是MVC3解析器没有正确处理#23@Model.ID。它不会替换Model.ID的值。
下面列出了正确的解决方案,但要“剪切和粘贴”:
@{
string requestValue = "%23" + Model.ID.ToString()
}
<a href = "mailto:@Model.Email?subject=Request @requestValue">@Model.Name</a>
以上将生成一个可正常点击的href邮件链接,如下所示:
<a href="mailto:john.stone@nowhere.com?subject=Request %235">John Stone</a>
点击上述内容后,电子邮件的主题将为“请求#5”。
答案 0 :(得分:2)
您可以使用内联C#语句。
@{
string requestValue = "#" + Model.ID.ToString() // or "%23"
}
<a href = "mailto:@Model.Email?subject=Request @requestValue">@Model.Name</a>