如何将cshtml中的对象列表传递到ASP.NET中的mvc控制器

时间:2018-01-08 09:38:43

标签: c# asp.net asp.net-mvc

我是ASP.Net的新手。我会尽量保持清醒。我在网上发现了许多类似的问题,但我无法解决他们的问题。

我正在尝试从cshtml页面向控制器发送“UserPreferences”列表。单击按钮时会发生这种情况。 PreferenceList视图模型是一个包含Userpreferences列表的类,也是一个视图模型。

这样做有什么好/最好的方式?

CSHTML:

@using ASP_Killer_App.ViewModels
@model PreferenceList


<h2>User settings</h2>

<div class="row">
    <div class="col-xs-12">
@using (Html.BeginForm("Settings", "Home"))
{
        <ul>
        @foreach(Models_KillerApp.UserPreference u in Model.Preferences)
        {
            <li>
                <p>@u.Name</p>
                @if (u.PreferenceDisplayed == true)
                {
                    <input id="checkBox" type="checkbox" name="@u.PreferenceDisplayed" checked>
                }
                else
                {
                    <input id="checkBox" type="checkbox" name="@u.PreferenceDisplayed">
                }
            </li>
        }
        </ul>


            <input type="submit" value="Save Preferences" />
}
    </div>
</div>

的ViewModels:

public class UserPreference
{
    public string Name { get; set; }
    public bool PreferenceDisplayed { get; set; }
}

public class PreferenceList
{
    public List<Models_KillerApp.UserPreference> Preferences { get; set; }

    public UserPreference Preference { get; set; }
}

控制器:

[HttpPost]
    public ActionResult SavePreferences(ViewModels.PreferenceList preferences)
    {
        //work with returned list of preferences here
        return View();
    }

0 个答案:

没有答案