Asp.net mvc 3 MVC3-HTML帮助程序

Asp.net mvc 3 MVC3-HTML帮助程序,asp.net-mvc-3,view,html-helper,Asp.net Mvc 3,View,Html Helper,我本来打算使用声明性HTML帮助程序,但后来发现它们还没有在MVC3版本中实现 我正在尝试让旧的HTML帮助程序使用以下代码: private static String GenerateSingleOptionHTML(Question q) { String ret = ""; for(int i = 0; i < 3; i++) { ret += String.Format("<li><input type=\"ra

我本来打算使用声明性HTML帮助程序,但后来发现它们还没有在MVC3版本中实现

我正在尝试让旧的HTML帮助程序使用以下代码:

private static String GenerateSingleOptionHTML(Question q)
{    
    String ret = "";

    for(int i = 0; i < 3; i++)
    {
        ret += String.Format("<li><input type=\"radio\" id=\"Q" + i +"\" value=\"" + i + "\" name=\"Q" + i +"\" />" + q.Body + "</li>");
    }

    return ret;
}
私有静态字符串GenerateSingleOptionHTML(问题q)
{    
字符串ret=“”;
对于(int i=0;i<3;i++)
{
ret+=String.Format(“
  • ”+q.Body+”
  • ”); } 返回ret; }
    忽略html和标记,因为它们工作正常。我的观点是:“
  • 身体问题1
  • 身体问题1
  • 身体问题1
  • ”而不是格式化的HTML


    谢谢

    您需要返回的实例。您的输出字符串正在被编码

    在呈现期间,
    MvcHtmlString
    对象将被视为已经编码(我假设您使用的是
    语法,而不是
    将HTML注入页面)


    您需要返回的实例。您的输出字符串正在被编码

    在呈现期间,
    MvcHtmlString
    对象将被视为已经编码(我假设您使用的是
    语法,而不是
    将HTML注入页面)


    David Neale是对的,但在ASP.NET MVC 3中,您实际上应该返回
    HtmlString
    的实例,而不是
    MVCHTMLSING
    (尽管两者都可以工作):

    private static HtmlString generatesingeleptionhtml(问题q)
    {    
    字符串ret=“”;
    对于(int i=0;i<3;i++)
    {
    ret+=String.Format(“
  • ”+q.Body+”
  • ”); } 返回新的HtmlString(ret); }
    David Neale是对的,但在ASP.NET MVC 3中,您实际上应该返回
    HtmlString
    的实例,而不是
    MVCHTMLSING
    (尽管两者都可以工作):

    private static HtmlString generatesingeleptionhtml(问题q)
    {    
    字符串ret=“”;
    对于(int i=0;i<3;i++)
    {
    ret+=String.Format(“
  • ”+q.Body+”
  • ”); } 返回新的HtmlString(ret); }
    太好了,谢谢。我知道字符串的格式有问题,但要找到微软解决这个问题的方法总是很痛苦的。总之,我正在使用Razor的@notation将HTML注入到页面中。@vkip-在这种情况下,您不需要担心视图中的任何内容。Razor视图引擎默认情况下会跳过所有内容;实际上,您只需要在不希望转义的情况下采取行动(您可以使用
    @Html.Raw(此处为Html)
    Razor默认情况下与
    等效。您可以使用
    @Html.Raw(myString)
    也要解决这个问题。那太好了,谢谢。我知道字符串的格式有问题,但要找到Microsoft解决这个问题的方法总是很痛苦。总之,我正在使用Razor的@符号将HTML注入页面。@vkip-在这种情况下,您不必担心视图中的任何内容。Razor view en默认情况下,gine会转义所有内容;实际上,您只需要在希望不转义的内容时采取行动(您可以使用
    @Html.Raw(此处为Html_)
    Razor默认情况下与
    等效。您可以使用
    @Html.Raw(myString)
    来解决这个问题。啊,我没有意识到。ThanksHi,你确定吗?我有转换异常:错误1无法将类型“System.Web.HtmlString”隐式转换为“string”@vkip-抱歉,修复了代码示例:你实际上需要将
    HtmlString
    设置为返回类型啊,我没有意识到。ThanksHi,你确定吗关于此?我有转换异常:错误1无法将类型“System.Web.HtmlString”隐式转换为“string”@vkip-抱歉,修复了代码示例:您实际上需要将
    HtmlString
    设置为返回类型
    return MvcHtmlString.Create(ret);
    
    private static HtmlString GenerateSingleOptionHTML(Question q)
    {    
        String ret = "";
    
        for(int i = 0; i < 3; i++)
        {
            ret += String.Format("<li><input type=\"radio\" id=\"Q" + i 
                +"\" value=\"" + i + "\" name=\"Q" + i +"\" />" + q.Body + "</li>");
        }
    
        return new HtmlString(ret);
    }