2013-09-13 4 views
0

первое сообщение! Итак, я очень новичок в asp.net mvc 4 (3 дня), и мне было назначено создать таблицу для отображения некоторых тестовых результатов теста. У меня есть три таблицы данных SQL: Benchmark (имеет внешний ключ как для сценариев, так и для строковых идентификаторов), Build (таблица, содержащая версию, идентификатор и т. Д. Из программного обеспечения), скрипт (имена некоторых тестовых скриптов с созданной датой и т. Д.)asp.net mvc dropdownlist получение selectedvalue

Я создал модели. контроллеров и представлений для всех таблиц с использованием Entity Framework.

Я хотел бы, чтобы пользователь мог выбрать из выпадающего меню версию сборки, затем заполнить таблицу со всеми сценариями, версией сборки и, наконец, некоторыми базовыми компонентами (среднее время, пропуск/сбой и т. Д.)

Я заполнил выпадающий список данными из Build.Version.

Проблема я не знаю, как получить выбранное значение из DDL

класса модели (Benchmark)

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Web.WebPages.Html; 

namespace BenchmarkApp.Models 
{ 
    public partial class Benchmark 
    { 
     public int BenchmarkID { get; set; } 
     public int ScriptID { get; set; } 
     public int BuildID { get; set; } 
     public int MinTime { get; set; } 
     public int MeanTime { get; set; } 
     public int MaxTime { get; set; } 


     [ForeignKey("BuildID")] 
     public virtual Build Build { get; set; } 

     [ForeignKey("ScriptID")] 
     public virtual Script Script { get; set; } 
    } 
} 

класс контроллера для Benchmark конкретно ActionResult Index()

public class BenchmarkController : Controller 
{ 
    private DAContext db = new DAContext(); 

    // 
    // GET: /Benchmark/ 

    public ActionResult Index(string buildNumber = "0") 
    { 
     var benchmarks = db.Benchmarks.Include(b => b.Build).Include(b => b.Script); 

     var query = db.Builds.Select(c => new { c.Id, c.Version }); 
     ViewBag.Builds = new SelectList(query.AsEnumerable(), "Id", "Version"); 

     return View(benchmarks.ToList()); 
    } 

Наконец, представление (индекс) для теста, я прокомментировал некоторые из разных DDL, у меня есть три д.

<table border="1"> 
    <tr> 
     <th> 
      Build version: 
     </th> 
     <th> 
      <%-- Html.DropDownList("Builds", null, new {@onchange = "onChange(this.value);" }) --%> 
      <%-- Html.DropDownList("BuildID", (SelectList) ViewBag.Builds, "--Select One--") --%> 
      <%: Html.DropDownList("BuildDD", (IEnumerable<SelectListItem>)ViewBag.Builds, "--Select One--")%> 
     </th> 
    </tr> 
</table> 

Любая помощь будет оценена! Заранее спасибо!

+0

Я считаю, что это то, что вам нужно: [mvc C# html.dropdownlist и viewbag] (http://stackoverflow.com/a/12112611/690329). – afzalulh

ответ

0

попробовать следующий код:

@var listData = (List<SelectListItem>)ViewBag.Builds; 
    @Html.DropDownList("Builds", listData, new 
           { 
            onchange = "OnChange(this);", 
            oval = listData.Any(x => x.Selected) ? 
            listData.Find(x => x.Selected).Value : listData[0].Value 
           }) 

и в вашем JavaScript:

function ChangeLanguage_OnChange(dropdownControl) { 
    var selectValue = dropdownControl.options[dropdownControl.selectedIndex].value; 
} 

Надеется, что это поможет!

+0

Извините, я переехал в другой проект. –

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