면도기보기에서 작동하지 않습니다 Visual Studio에서 설정 선택된 값은 내가 내 컨트롤러이이
빠른 시계 (유형 List<SelectListItem>
이다)을 CountriesSl가 선택한 값이 있는지 확인
[Route("Checkout")]
public ActionResult Checkout()
{
var sb = new ShoppingBagViewModel();
sb.DestinationCountry = "Netherlands"; // I hoped that this was sufficient
sb.CountriesSl.Single(c => c.Text.Equals("Netherlands", StringComparison.InvariantCultureIgnoreCase)).Selected = true;
return View(sb);
}
. (네덜란드)
이 내 면도기이다 :
@Html.DropDownListFor(m => m.DestinationCountry, Model.CountriesSl)
DestinationCountry
또한 내 뷰 모델의 캐릭터 소품이다. 많은 비슷한 질문이 있다는 것을 알고 있지만 많은 것을 보았습니다. 나는 그것을 보지 못했습니다. 나는 또한 시도 :
@Html.DropDownListFor(m => Model.DestinationCountry, Model.CountriesSl)
는 나에게 대답을 줄뿐만 아니라, 내 실수가 무엇인지 설명하지 마십시오.
편집 문제가 무엇인지 명확하게하려면 : 내 면도기 뷰에서 멋진 옵션 목록을 얻지 만 첫 번째 항목 만 "선택됨"입니다. 생성 된 html을 보면 선택한 항목이 없습니다.
public List<SelectListItem> CountriesSl
{
get
{
List<SelectListItem> _countries = HttpContext.Current.Cache["slCountries"] as List<SelectListItem>;
if (_countries == null)
{
_countries = new List<SelectListItem>();
foreach (string s in System.IO.File.ReadLines(System.Web.Hosting.HostingEnvironment.MapPath("~/tmpwrite/countries.csv")))
{
var tmp = s.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
_countries.Add(new SelectListItem() { Text = tmp[1], Value = tmp[0], Selected = false });
}
HttpContext.Current.Cache.Add("slCountries", _countries.OrderBy(c => c.Text).ToList(), null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0), System.Web.Caching.CacheItemPriority.Normal, null);
}
return _countries;
}
}
어떻게'List'을 채우고 있습니까? 'text'뿐만 아니라'value' 속성을 설정합니까? –
Ric
이상하게도 질문과 두 답변 모두 -1 점을 받았고 모든 것이 다운 된 이유는 없습니다. –