2016-10-14 3 views
0

У меня есть DropDownList в моем режиме бритвы, он получает значения из моей модели, которая заполняется из базы данных. То, что я хочу достичь, - это выбрать вариант из этого DropDownList и нажать кнопку, показать список этих параметров, выбранных один под другим, все в одном и том же представлении и рядом с каждым элементом ссылку для редактирования или удаления. Затем на другом экране я могу добавить этот последний «список» в свою базу данных. Это часть моего кода:Добавить DropDownList выбранный элемент в список динамически в .NET MVC

Модель

public class SchedulerViewModel 
{   
     public string Frequency { get; set; }  
     public string SelectedReportValue { get; set; } 
     public IEnumerable<SelectListItem> ReportList 
     { 
      get 
      { 
       List<string> reportlist = DataAccess.retrieveReportList(); 
       return new SelectList(reportlist); 
      } 
     } 

     public string NewCronName { get; set; } 

     [Display(Name = "OrderDate")] 
     [DataType(DataType.Date)] 
     public System.DateTime OrderDate { get; set; } 

     public IEnumerable<SelectListItem> FrequencyList 
     { 
      get 
      { 
       List<string> frequencyList = DataAccess.retrieveFrequencyList(); 
       return new SelectList(frequencyList); 
      } 
     } 
} 

контроллер

[HttpGet] 
public ActionResult AddCron() 
{     
    return View();    
} 

[HttpPost] 
public ActionResult AddCron(SchedulerViewModel model) 
{    
    return View(model); 
} 

Посмотреть

<script> 
    function myFunction() { 
     $("#div1").load('@Html.LabelFor(model => model.SelectedReportValue)'); 

    } 
</script> 
. 
. 
. 


<tr> 
    <td><h5>Frequency: </h5></td> 
    <td> @Html.DropDownListFor(model => model.Frequency, Model.FrequencyList)</td> 

    <td><h5>First Run Date: </h5></td>   
    <td> @Html.TextBoxFor(m => m.OrderDate, new { @class = "form-control datepicker", @id = "datepicker" })</td>   
</tr> 
<tr class="blank_row"> 
       &nbsp; 
</tr> 
<tr> 
    <td><p><b>Add Report</b></p></td> 
</tr> 
<tr> 
    <td><h5>Report :</h5></td> 
    <td>@Html.DropDownListFor(model => model.SelectedReportValue, Model.ReportList)</td> 
    <td><input type="submit" name="Add" value="Add" onclick="myFunction()" /></td> 
</tr> 

<div id="div1"></div> 

Я могу увидеть возвращающегося выбранное значение в моей модели в [HttpPost] метод, но все еще не может заставить его работать в представлении. Любое предложение?

enter image description here

и это то, что я пытаюсь получить ...

enter image description here

+0

Вы рассматривали использование неполного изображения для этого? – nocturns2

+0

@ nocturns2 не очень знакомы с тем, как решить проблему с частичным представлением, можете ли вы указать мне пример, чтобы я мог лучше понять его? –

+0

Удалите ненужные коды. Они действительно запутывают. – Win

ответ

0

Попробуйте избавиться от JQuery, просто использовать бритву:

<div id="div1"> 
    @Html.LabelFor(model => model.SelectedReportValue) 
</div> 

База ваш комментарий Я предлагаю вам использовать jquery для запуска события изменения и добавления элемента в список вручную:

$("#filetype").change(function() { 
    //code handler to add to list 
}); 
+0

, но мне нужно добавлять новые элементы каждый раз, когда я выбираю элемент из DropDownList и нажимаю кнопку. Поэтому я не думаю, что это сработает –