簡體   English   中英

Html.DropDownListFor沒有選擇正確的對象

[英]Html.DropDownListFor doesn't select the right object

視圖

@Html.DropDownListFor(model => model.ObjectId, 
     Model.SelectListItems, 
     "Default", 
     new { @id = "DropDown" })

調節器

TheViewModel model = ((TheViewModel )Session[nameof(TheViewModel )]);
if (model == null)
{
    // fill model with data
}
return View(model);

我從會話中加載了viewmodel,現在想通過id(從模型中)設置選定的值,但是這種方式不起作用。 但是,在post方法中,我可以在模型中獲取正確的信息,並且從會話加載數據時,也可以設置所有內容。

請注意,我不想使用Viewbag

兩個變量都在控制器中設置。 ObjectId是一個int

先感謝您。

請嘗試以下方法:

模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Testy20161006.Models
{
    public class AnItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }


    public class TheViewModel
    {
        public TheViewModel()
        {
            items.Add(new AnItem { Id = 1, Name = "dh1" });
            items.Add(new AnItem { Id = 2, Name = "dh2" });
            items.Add(new AnItem { Id = 3, Name = "dh3" });
        }

        public string SelectedValue { get; set; }

        public List<AnItem> items = new List<AnItem>();

        public IEnumerable<SelectListItem> Items
        {
            get { return new SelectList(items, "Id", "Name"); }
        }
        public string RequiredValidationMessage { get; set; }
    }
}

控制器:

public class HomeController : Controller
{
    [HttpPost]
    public ActionResult Index26(TheViewModel m)
    {
        var selectedText = m.SelectedValue;
        return View(m);
    }

    public ActionResult Index26()
    {
        TheViewModel m = new TheViewModel();
        return View(m);
    }

視圖:

@model  Testy20161006.Models.TheViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index26</title>
</head>
<body>
    <div>
        @using (Html.BeginForm())
        {
            @Html.LabelFor(m => m.SelectedValue)
            @Html.DropDownListFor(m => m.SelectedValue,
        new SelectList(Model.Items, "Value", "Text"))

            <input type="submit" value="Get Value of dropdown" />
        }
    </div>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM