ASP.NET MVC2 母版页 - 服务器端脚本未呈现,第一个括号被转义

发布于 2024-09-18 20:52:04 字数 599 浏览 4 评论 0原文

我有一个母版页,我将其用作模板,以允许我定义每个页面的元标记。我的母版页采用包含元信息的模型,这是我尝试执行以下操作的示例:

<meta name="description" content="<%= Model.description %>" />
<meta name="keywords" content="<%= Model.keywords %>" />

但是,当我在页面呈现后检查 HTML 时,我得到以下信息:

<meta name="description" content="&lt;= Model.description %>" />
<meta name="keywords" content="&lt;= Model.keywords %>" />

如果我删除外部引号从内容中,例如 content=<%= Model.description %> 它呈现数据。它似乎不喜欢周围的引号。

这是母版页的错误吗?如果是这样,最好的替代解决方法是什么?如果不是,我做错了什么?

I have a master page which I am using as a template to allow me to define meta tags per page. My master page takes in a model which contains the meta information, here is an example of what I am trying to do the following:

<meta name="description" content="<%= Model.description %>" />
<meta name="keywords" content="<%= Model.keywords %>" />

However, when I check the HTML once the page is rendered I get this:

<meta name="description" content="<= Model.description %>" />
<meta name="keywords" content="<= Model.keywords %>" />

If I remove the outer quotation marks from the content e.g. content=<%= Model.description %> it renders the data. It doesn't seem to like the surrounding quotation marks.

Is this a bug with the master pages? If so, what would be the best alternative workaround for this? If not, what am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愁杀 2024-09-25 20:52:04

我以前见过这种情况,这很痛苦。也许您的 head 标签中有一个 runat="sever" 属性,如下所示:

<head runat="server">

如果您刚刚创建:

<head>

那么您不应该看到此行为。

I have seen that before and it is a pain. Probably you have a runat="sever" attribute in your head tag like this:

<head runat="server">

if you just made it:

<head>

then you should not see this behavior.

绝情姑娘 2024-09-25 20:52:04

这一直是一个问题,因为它试图对属性中的内容进行编码。您可以通过执行以下操作来解决此问题:

<%= string.Format("<meta name=\"description\" content=\"{0}\" />", Model.description) %> 
<%= string.Format("<meta name=\"keywords\" content=\"{0}\" />", Model.keywords) %> 

编辑:这不是 MasterPages 特有的问题。我很久以前在这里发布了一个类似的问题,所以询问它,如果您阅读了接受的答案,您可以看到该框架在 head 标签中具有针对各种项目的特定代码,其中它将具有稍微不同的渲染格式并进行编码数据。

ASP.NET Webform css 链接被损坏

This has always been an issue because it is trying to encode the contents in the attributes. You can get around it by doing this instead:

<%= string.Format("<meta name=\"description\" content=\"{0}\" />", Model.description) %> 
<%= string.Format("<meta name=\"keywords\" content=\"{0}\" />", Model.keywords) %> 

EDIT: This is not an issue specific to MasterPages. I posted a similar question a long time ago here on SO asking about it and if you read the accepted answer you can see that the framework has specific code for various items in the head tag where it will have a slightly different rendering format and will encode the data.

ASP.NET Webform css link getting mangled

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文