超文本标记语言DropDownlistFor selectedValue

本文关键字:selectedValue DropDownlistFor 超文本标记语言 | 更新日期: 2023-09-27 18:12:36

很难让这个下拉列表绑定。这只是一个州的列表。该模型。State是"TX",但是我的下拉列表显示的是"AK",这是列表中的第一个值。任何想法吗?

<%: Html.DropDownListFor(
                 model => model.State,
                 new SelectList(
                               muniSynd.getStatecodesDropDown(),
                               "Value",
                               "Text",
                               Model.State.ToString().Trim()
                 )
              )
            %>

在我的muniSynd类中,它是我的dataContext的包装.....

public IList<StateCodeViewModel> getStatecodesDropDown()
        {
            var states = from p in this._MuniDc.Statecodes
                         select new StateCodeViewModel
                         {
                             Value = p.Statecode1.ToString().Trim(),
                             Text = p.Statecode1.ToString().Trim()
                         };
            return states.ToList();
        }

public class StateCodeViewModel
    {
        public string Value{get;set;}
        public string Text{get;set;}
    }

我使用LinqToSQL,这里是对象

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Statecodes")]
    public partial class Statecode
    {
        private string _Statecode1;
        public Statecode()
        {
        }
        [global::System.Data.Linq.Mapping.ColumnAttribute(Name="Statecode", Storage="_Statecode1", DbType="NVarChar(3)")]
        public string Statecode1
        {
            get
            {
                return this._Statecode1;
            }
            set
            {
                if ((this._Statecode1 != value))
                {
                    this._Statecode1 = value;
                }
            }
        }
    }

超文本标记语言DropDownlistFor selectedValue

我试图复制你的问题,但我下面的例子工作得很好:

public class HomeController : Controller
{
     public ActionResult Index()
     {
         var viewModel = new IndexViewModel();
         viewModel.State = "TX";
         return this.View(viewModel);
     }
         public static IList<StateCodeViewModel> getStatecodesDropDown()
         {
             var stateCodes = new List<string> { "AX", "GH", "TX" };
             var states = from p in stateCodes
                          select new StateCodeViewModel
                          {
                              Value = p,
                              Text = p
                          };
             return states.ToList();
         }
    }
    public class IndexViewModel
    {
        public string State { get; set; }
    }
    public class StateCodeViewModel
    {
        public string Value { get; set; }
        public string Text { get; set; }
    }
<<p> 视图/strong>
@using MVCWorkbench.Controllers
@model IndexViewModel
@{
    ViewBag.Title = "title";
}
@Html.DropDownListFor(model => model.State,
                      new SelectList(HomeController.getStatecodesDropDown(),
                               "Value",
                               "Text",
                               Model.State.ToString().Trim()
                 )
              )

不知道该建议什么,然后检查状态值在下拉列表中。这也可能是大小写敏感的问题?