c#如何从视图控制器到下拉列表值

标签: Asp.net C#
发布时间: 2017/2/25 3:51:04
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

像标题

我一步一步地为例

我也可以从做下拉列表的控制器传递到视图的 SelectItemList

但我不能获得一个值视图控制器

已经有人可以教我如何来处理 MVC

这是我的控制器

        var Course = getCourseList.getCourse();
        if (Course.Any())
        {
            List<SelectListItem> items = new List<SelectListItem>();
            foreach (var course in Course)
            {
                items.Add(new SelectListItem()
                {
                    Text = course.RC_NAME,
                    Value = course.RC_MAJORCODE,
                });
            }
            ViewBag.SelectList = items;
        }

这是我的看法

    @using YTDT_OAuth.Models
@model List<CourseInfo>
@using (Html.BeginForm("CourseSave", "Home"))
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
        <table class="table">
                <tr>
                    <th scope="row">first</th>
                    <td>@Html.DropDownList("SelectList", null, "default", new {@id = "a" })</td>
                    @foreach (var item in Model)
                    {
                        <p>@item.RC_MAJORCODE</p>
                    }
                </tr>
        </table>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>
    </div>
}

和我想要做某事在此控制器

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult CourseSave(CourseInfo CourseDataz)
{
    // the value is received in the controller.

    return View();
}

解决方法 1:

我个人喜欢使用强类型的模型,而不是 ViewBag。ViewData 和 ViewBag 是动态的和他们抛出运行时错误,而不是编译时错误。

示例代码

模型

public class CourseInfo
{
    public string SelectedMajorCode { get; set; }
    public IList<SelectListItem> AvailableMajorNames { get; set; }

    public CourseInfo()
    {
        AvailableMajorNames = new List<SelectListItem>();
    }
}

视图

@model DemoMvc.Models.CourseInfo
@using (Html.BeginForm("Index", "Home"))
{
    @Html.DropDownListFor(m => m.SelectedMajorCode, Model.AvailableMajorNames)
    <input type="submit" value="Submit"/>

}

控制器

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new CourseInfo
        {
            AvailableMajorNames = GetColorListItems()
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(CourseInfo model)
    {
        if (ModelState.IsValid)
        {
            var majorCode = model.SelectedMajorCode;
            return View("Success");
        }
        // If we got this far, something failed, redisplay form
        // ** IMPORTANT : Fill AvailableMajorNames again; 
        //    otherwise, DropDownList will be blank. **
        model.AvailableMajorNames = GetMajorListItems();
        return View(model);
    }

    private IList<SelectListItem> GetMajorListItems()
    {
        // This could be from database.
        return new List<SelectListItem>
        {
            new SelectListItem {Text = "One", Value = "1"},
            new SelectListItem {Text = "Two", Value = "2"}
        };
    }
}
官方微信
官方QQ群
31647020