如何连接几个MvcHtmlString实例 [英] How to concatenate several MvcHtmlString instances

查看:123
本文介绍了如何连接几个MvcHtmlString实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有关于如何连接,因为在的 MSDN

I have some doubts about how to concatenate MvcHtmlString instances because of this information found in MSDN :

MvcHtmlString类重新presents一个HTML-CN codeD字符串
  不宜带codeD再次

MvcHtmlString Class Represents an HTML-encoded string that should not be encoded again

我冒这个险的字符串是HTML-ZH codeD两次使用code这样的时候:

Do I risk that strings are HTML-encoded twice when using code like this:

var label = Html.LabelFor(model => model.Email);
var textbox = Html.TextBoxFor(model => model.Email);
var validation = Html.ValidationMessageFor(model => model.Email);

var result = MvcHtmlString.Create(
  label.ToString() + textbox.ToString() + validation.ToString());

(注:这是应该进入一个的HtmlHelper扩展方法,以减少看法code-重复)。

(note: this is supposed to go into an HtmlHelper extension method to reduce code-duplication in views).

推荐答案

您code是正确的。

从MSDN这片段是指编码视图引擎(如.NET 4的.aspx的视图引擎时使用<%:%> 或剃刀视图在MVC 3引擎)不应该再带code中的对象的字符串值。

That snippet from MSDN means that an encoding View Engine (such as the Aspx view engine in .NET 4 when using <%: %> or the Razor view engine in MVC 3) should not re-encode the string value of the object.

因此​​,例如:

string s = "<tag>";
var hs = MvcHtmlString.Create(s);

<%: s %>  -- outputs "&lt;tag&gt;"
<%: hs %> -- outputs "<tag>"

这篇关于如何连接几个MvcHtmlString实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆