2014-09-09 1 views
0

Я использую метод, который генерирует мои вопросы и ответы я имею в виду каждые вопросов появляется в поле зрения и ответы этого вопроса ставится на DDL, как вы можете увидеть здесь:Получить значение стандартного списка DDL в MVC

public string GenerateHtmlCode() 
     { 
      string result = string.Empty; 
      List<ExecutiveOfficer> executiveOfficers = executiveOfficerRepository.GetAll().ToList(); 
      List<Indicator> indicators = indicatorRepository.GetAll().ToList(); 

      foreach (ExecutiveOfficer executiveOfficer in executiveOfficers) 
      { 
       result += "<div style='width:100%;float:right;'><span>" + executiveOfficer.ExecutiveOfficerText + 
         "</span><span style='float:left'>" + 
         GenerateAnswer(indicatorRepository.FindBy(i => i.ExecutiveOfficerId == executiveOfficer.Id 
                   ).ToList(), executiveOfficer.Id) + "</span></div>"; 
      } 


      return result; 
     } 

в моем создании метода в контроллере я передать строку в viewbag, как вы можете увидеть здесь:

[HttpGet] 
     public ActionResult Create(int preliminaryId) 
     { 
      ViewBag.preliminaryId = preliminaryId; 
      ViewBag.pageGenarator = objScoreRepository.GenerateHtmlCode(); 
      // List<ExecutiveOfficer> executiveOfficer = objScoreRepository.GetAll().ToList(); 
      //ViewBag.executiveOfficerName = new SelectList(executiveOfficer, "Id", "ExecutiveOfficerText"); 
      return View("Create"); 
     } 

Мой HTML-код:

</span><span style='float:left'><select id='1' name ='1'><option value='value1'>displaytext</option><option value='value2'>displaytext2</option></select></span> 

Как вы можете видеть здесь, я 1 DDL, который имеет 2 значения, мне нужно, чтобы получить значение, выбранное пользователем, я использовать form collection, чтобы получить имя DDL, как вы можете увидеть здесь:

[HttpPost] 
     //[Authorize(Roles = "Expert")] 
     public ActionResult Create(FormCollection formCollection) 
     { 
      //objScoreRepository.Add(Score); 
      //objScoreRepository.Save(); 
      foreach (var VARIABLE in formCollection.AllKeys) 
      { 


      } 
      return RedirectToAction("Create", "Score"); 
     } 

formcollection просто возвращает одну запись, а запись 1 - имя DDL. Но мне нужно получить значение DDL. Как я могу это сделать?

Мое мнение:

@{ 
    ViewBag.Title = "Create"; 
    Layout = "~/Views/Shared/_LayoutIdeaOtherPage.cshtml"; 
} 

    <h2>Create</h2> 
    @using (Html.BeginForm()) 
    { 
     @Html.ValidationSummary(true) 

     @Html.Raw(ViewBag.pageGenarator) 

     <div class="buttonPossion"> 
        <input type="submit" Class="buttonSave" /> 
       </div> 
    } 

наилучшими пожеланиями.

+0

на мой взгляд ..Just перепроектировать страницу архитектуры вы добавления HTML внутри контроллера, который не является отличная идея .. !!! –

+0

@ Kartikeya, есть ли у вас какие-то другие идеи? –

ответ

0

Вы можете использовать

foreach(string item in form.AllKeys) 
{ 
    var value = Request[item]; 
} 
+0

, так что просто верните 1 !!! –

+0

Нет, если вы html правильно, и вы выбираете 1-й вариант в выпадающем меню, он будет возвращать значение "value1". Но почему вы не используете модели и html-помощники для визуализации представлений и использования связующих функций MVC? –

+0

У меня есть таблица, содержащая вопросы и таблица, в которой содержатся ответы, между этими двумя таблицами существует одно отношение, поэтому мне нужно показать вопрос и ответы (в ddl), я не знаю, как это сделать что ?!!! –

 Смежные вопросы

  • Нет связанных вопросов^_^