1

私の見解では、モデルをループして html を作成し、ページに表示しています。この html を stringbuilder と if/else 条件で構築しています。

この文字列を html としてレンダリングしようとしましたが、スタックし続けます。

これはコードです:

@model UserManager.Models.vw_UserManager_Model 
<div id="success-message">
    <fieldset>
        <legend><b>@ViewData["Action"]</b> </legend>
        <!-- User created -->
        <div id="content">

            @Html.Raw("some test string");

            @{
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                int i = 0;
                sb.Append("<ul>");
                foreach (var item in Model)
                {
                    string s = item.ToString();
                    if (s == "," && i != 1)
                    {
                        // When it finds first delimiter, start building the string
                        i = 1;
                        sb.Append("<li>");
                    }

                    else if (s == "," && i == 1)
                    {
                        // When it finds first delimiter, start building the string
                        sb.Append(" : ");
                    }

                    else if (i == 1 && s != "/")
                    {
                        // Contine building the string
                        sb.Append(s);
                    }

                    else if (s == "/")
                    {
                        // End current list item and set i to 0. This will start the next li sequence
                        sb.Append("</li>");
                        i = 0;
                    }

                    else
                    {
                        // Do nothing in the loop   
                    }
                }
                sb.Append("</ul>");
                var str = MvcHtmlString.Create(sb.ToString());

            }

        </div>
    </fieldset>
</div>

SBの内容

{<ul><li>firstname : sdlmsdm</li><li>lastname : smsd</li><li>salutation : Mr</li><li>password : ksklsd</li><li>email : sdkm@as.com</li><li>userName : sdkmsdmke</li><li>MaxConcurrentUsers : 0</li><li>group_name : [PIAS] UK LTD</li><li>module_name : Connect:Top 1000 Advertisers</li><li>isactive : True</li><li>IsApproved : False</li><li>alf : True</li><li>brad : False</li><li>selected_moduleAlf : Connect:Top 1000 Advertisers : System.String : selected_moduleBrad : false : </ul>}

このコードのデバッグが終了すると、HTML は何も表示されません。誰も答えを持っていますか?

4

2 に答える 2

1

HtmlString を MvcHtmlString.Create("string") に変更し、作成された変数を表示するだけです。

<div id="content">
    @{
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<ul>");
        sb.Append("<li>asdfd</li>");  
        sb.Append("</ul>");
        var str = MvcHtmlString.Create(sb.ToString());

    }

    @str
</div>
于 2013-04-09T09:44:00.270 に答える