0

コントローラーからラジオボタンのリストを取得してビューに表示しようとしていますが、機能していないようです。私は次のモデルを持っています

public class Module
{

    public int ModuleId { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    public bool IsActive { get; set; }

}

コントローラーでは、モジュールのリストを取得してビューに渡しています。

[HttpGet]
    public ActionResult SelectAdmin()
    {
        //getting the list of modules from db
        List<Module> modulelst = GetModules(); 
        ViewBag.lstm = modulelst;

        return PartialView();
    }

ビューで、モジュールのリストを RadioButtons/Checkboxes の形式で表示し、選択されているモジュールの対応する ID を取得しようとしています。

私が試しているビューのコードは次のとおりです。

@model List<MyFriday.Domain.Model.Client>

@using (Ajax.BeginForm("SelectAdmin", "CMAdmin", null, new AjaxOptions { UpdateTargetId = "update-message", InsertionMode = InsertionMode.Replace, HttpMethod = "POST", OnSuccess = "UpdateSuccess" }, new { @ id = "編集フォーム" })) { @Html.ValidationSummary(true)

<fieldset>

<div class="content">                     
            @using (Html.BeginForm())
            {
                <div>
                Select the Admin Type:
                 </div>
                <div id="divModules">
                @foreach (var Modules in ViewBag.lstm)
                {
                    <div class="formlabel">
                        <div align="right" class="label" style="cursor: pointer; position: relative;">
                            @(Modules.First().Title)
                        </div>
                    </div>
                    <div class="formelement">
                        <input type="radio" id=""/>
                            @(Modules.First().ModuleId)

                    </div>
                    <div style="clear: both;">
                    </div>
                }
                </div>
                <input id="Submit1"  type="submit" value="Submit"/>
                <input type="button" value="Cancel" onclick="javascript:cancelconfirm(this)"/>   

            }
            <div style="clear: both;">
                &nbsp;</div>

        </div>

</fieldset> 

}

上のビューが表示されない

誰でも私に解決策を提案してもらえますか?

4

1 に答える 1

0

まず、コントローラーを変更します。

[HttpGet]
public ActionResult SelectAdmin()
{
    //getting the list of modules from db
    List<Module> modulelst = GetModules(); 
    // ViewBag.lstm = modulelst;

    return PartialView(modulelst);
}

次に、ビューを変更します...最初の行にモデルを使用するデカレーションを追加します。

@model List<Module>

次に、forループを次のように変更します。

            @foreach (var module in Model)
            {
                <div class="formlabel">
                    <div align="right" class="label" style="cursor: pointer; position: relative;">
                        @Html.DisplayFor(modelItem => module.Title, true)

                    </div>
                </div>
                <div class="formelement">
                    <input type="radio" id=""/>
                        @RadioButtonFor(modelItem => module.ModuleId, new { @id="ModuleId"})

                </div>
                <div style="clear: both;">
                </div>
            }
于 2012-10-10T12:00:57.200 に答える