HtmlString 与 MvcHtmlString
两者之间有什么区别,或者何时优先选择另一个?
编辑:
有一点喜欢MvcHtmlString过HtmlString的是扩展方法IsNullOrEmpty的MvcHtmlString.
这是有效的,因为它返回字符串中部分视图呈现的结果:
@Html.Partial("Path/to/my/partial/view")
但我更喜欢使用RenderPartial,似乎我需要写:
@{Html.RenderPartial("Path/to/my/partial/view");}
代替:
@Html.RenderPartial("Path/to/my/partial/view");
让它工作.错误信息:
 Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
如果有更好的方法而不是@{...}只为一个方法调用打开代码块?
使用Razor View Engine,只要您将字符串直接输出到页面,它就是HTML编码的.例如:
@"<p>Hello World</p>"
实际上将输出到页面:
<p>Hello World </p>
哪个会在浏览器中显示为:
<p> Hello World </ p>
这里的问题是,在创建Html帮助程序时,到目前为止,使用旧的aspx视图引擎,我只返回一个字符串,并将其输出到浏览器:
<%= Html.MyCoolHelperMethod(); %>
所以我的问题基本上就是这个.我这样做:
public static IHtmlString MyCoolHelperMethod(this HtmlHelper helper)
{
   return new helper.Raw("<p>Hello World</p>");
}
在这种情况下,我可以在我的cshtml中执行此操作:
@Html.MyCoolHelperMethod();
或者我这样做:
public static string MyCoolHelperMethod(this HtmlHelper helper)
{
   return "<p>Hello World</p>";
}
在这种情况下,我需要在我的cshtml中完成工作:
@Html.Raw(Html.MyCoolHelperMethod());
显然,第一种方法使视图看起来更清晰,但我只是想知道普通模式是否实际上是帮助者返回IHtmlString并且我过去做错了.
最近一位同事检查了变更集,其中表单<%=(...)%>上的大量表达式被更改为<%:(...)%>.
我有一个模糊的回忆,听到了什么<%:做了,但不记得了.打电话给我的同事已经太晚了,Google和Bing似乎都无法搜索字符串"<%:".
有人可以开导我吗?
如何将一个Environment.NewLine(或一个< br />)内部ViewData["msg"]
渲染为一个真实<br />的视图内部?
我正在使用C#...