2

ソースは次のとおりです。

<% string[] roles = ViewData["Roles"] as string[]; 
                   if (roles != null && roles.Length > 0) {%>
            <p>
                <label for="roleName">
                    Role:</label>
                <% foreach (string role in roles) { %>
                <%: Html.RadioButtonFor(m => m.RoleName, role) %>&nbsp; <span>
                    <%: role%></span>
                <% } %>
            </p>
            <%} %>

これが私の試みです:

 @{
        string[] roles = ViewData["Roles"] as string[]; 
        if (roles != null && roles.Length > 0) {
            <p>
                <label for="roleName">Role:</label>
                foreach (string role in roles) {    
                    @Html.RadioButtonFor(m => m.RoleName, @role)&nbsp; <span>@role</span>
                    }
            </p>
        }
    }

問題は、実行時に次のエラーメッセージが表示されることです。

Compiler Error Message: CS0103: The name 'role' does not exist in the current context

Source Error:

Line 41:                 <label for="roleName">Role:</label>
Line 42:                 foreach (string role in roles) {    
Line 43:                     @Html.RadioButtonFor(m => m.RoleName, @role)&nbsp; <span>@role</span>
Line 44:             </p>
Line 45:         }

誰かが何が悪いのか見ることができますか?試しましたが、何か問題があるようです。これまでのところ、43行目を次のように変更してみました。

@Html.RadioButtonFor(m => m.RoleName, role)&nbsp; <span>@(role)</span>

@Html.RadioButtonFor(m => m.RoleName, role)&nbsp; <span>@role</span>

両方ともまだ機能しません:-(

4

3 に答える 3

0
@Html.RadioButtonFor(m => m.RoleName, @role)&nbsp; <span

する必要があります

@Html.RadioButtonFor(m => m.RoleName, role)&nbsp; 

@roleは正しいです。ただし、RadioButtonFor(...)呼び出しでは@記号は必要ありません。

于 2012-05-17T14:08:02.713 に答える
0
foreach (string role in roles) {    
    @Html.RadioButtonFor(m => m.RoleName, @role)&nbsp; <span>@role</span>
}

する必要があります

@foreach (string role in roles) {    
    @Html.RadioButtonFor(m => m.RoleName, role) <span>@role</span>
}
于 2012-05-17T14:10:58.730 に答える
0

これを試して:

@{
    string[] roles = ViewData["Roles"] as string[]; 
    if (roles != null && roles.Length > 0) {
    <p>
        <label for="roleName">Role:</label>
        @foreach (string role in roles) {    
            @Html.RadioButtonFor(m => m.RoleName, @role)@:&nbsp;<span>@role</span>
        }
    </p>
    }
}

または、次を使用できます。

@{
    string[] roles = ViewData["Roles"] as string[]; 
}
@if (roles != null && roles.Length > 0) {
<p>
    <label for="roleName">Role:</label>
    @foreach (string role in roles) {    
        @Html.RadioButtonFor(m => m.RoleName, @role)@:&nbsp;<span>@role</span>
    }
</p>
}
于 2012-05-17T14:19:41.017 に答える