2012-04-16 4 views
0

면도기 뷰에 <select> 요소가 있습니다. 언어 값이있는 드롭 상자로 렌더링됩니다. 나는 커스텀 쿠키와 커스텀 쿠키 인식 뷰 엔진을 통해 언어를 설정했다.면도기 뷰 엔진에서 쿠키를 기반으로 선택된 html 선택 값을 설정하십시오.

쿠키가 있다고 가정 해 봅시다 (language). 쿠키 값을 기준으로 선택된 <option>으로 표시된 뷰를 렌더링하고 싶습니다. Razor로 어떻게 제어 할 수 있습니까?

답변

1

잘 나는 강하게 부분보기 입력에서 선택을 둘 것 : 나는 실제로 내 기본보기에서 다음 내 컨트롤러에

public virtual ActionResult _MyAction() 
{ 
    // get users language 
    string selectedLanguage = "English"; // default 
    if(Request.Cookies["language"] != null) 
    { 
     selectedLanguage = Request.Cookies["lang"].ToString(); 
    } 

    // language list 
    ViewBag.AllLanguages = context.Languages.ToList(); 

    // retrieve language from database - example using EF 
    ViewBag.SelectedLanguage = context.Languages 
             .FirstOrDefault(l=>l.Text==selectedLanguage); 

을 값을 설정 한 것

@inherits System.Web.Mvc.WebViewPage<Language> 
@Html.DropDownListFor(x => x, 
        new SelectList((List<Language>)ViewBag.AllLanguages, 
        "Id", 
        "Text", 
        Model==null?-1:Model.Id), "Choose Language") 

@Html.Partial("LanguageSelect", ViewBag.SelectedLanguage); 

이것은 실제 select lis의 프리젠 테이션에서 선택해야 할 언어의 로직을 유지합니다. 티. 그리고 만약 당신이 많이 사용한다면 당신은 모든 논리를 공유 방법에 넣을 수 있습니다.

관련 문제