我有一个母版页,我用它作为模板,允许我每页定义元标记。我的主页面包含一个包含元信息的模型,这里是我尝试执行以下操作的示例:
<meta name="description" content="<%= Model.description %>" />
<meta name="keywords" content="<%= Model.keywords %>" />
但是,当我在呈现页面时检查HTML时,我得到了这个:
<meta name="description" content="<= Model.description %>" />
<meta name="keywords" content="<= Model.keywords %>" />
如果我从内容中删除外部引号,例如content=<%= Model.description %>
它呈现数据。它似乎不喜欢周围的引号。
这是母版的错误吗?如果是这样,那么最好的替代解决方法是什么?如果没有,我做错了什么?
答案 0 :(得分:5)
之前我已经看过,这是一种痛苦。可能你的head标签中有一个runat =“sever”属性,如下所示:
<head runat="server">
如果你刚刚做到了:
<head>
然后你不应该看到这种行为。
答案 1 :(得分:2)
这一直是个问题,因为它试图对属性中的内容进行编码。你可以通过这样做来解决这个问题:
<%= string.Format("<meta name=\"description\" content=\"{0}\" />", Model.description) %>
<%= string.Format("<meta name=\"keywords\" content=\"{0}\" />", Model.keywords) %>
编辑:这不是特定于MasterPages的问题。我在很久以前发布了一个类似的问题,在SO上询问它,如果你阅读了接受的答案,你可以看到该框架具有head标签中各种项目的特定代码,它将具有稍微不同的渲染格式并将编码数据。