/ / Prístup k údajom ViewBag - jquery, asp.net-mvc, asp.net-mvc-4, html-select, html.dropdownlist pre

Prístup k údajom ViewBag - jquery, asp.net-mvc, asp.net-mvc-4, html-select, html.dropdownlistfor

Vo svojej aplikácii chcem vždy pridať nové autoinformácie ku konkrétnej tabuľke musím vybrať meno automobilu a ak bolo toto auto už predané, môžem si vybrať jeho meno vlastníka. Mám teda tento kód pre novú tabuľku riadkov:

<td>
@Html.DropDownListFor(model => model.CarName, new SelectList(ViewBag.Cars, "Id", "Description"), new { @class = "iEdit", id = "cars"})
@Html.ValidationMessageFor(model => model.Description)
</td>
<td data-name="carOwners">
@Html.DropDownListFor(model => model.Owner, new SelectList(ViewBag.Owners, "Id", "Description"), new { @class = "iDisable", disabled = "disabled" })
@Html.ValidationMessageFor(model => model.Side)
</td>

Ako však môžem skontrolovať, či bolo auto predané za vybranú hodnotu na prvom @ Html.DropDownListFor a potom povoliť druhé @ Html.DropDownListFor?

Budovať moje ViewBag.Cars Tento kód som použil v jazyku môjho kontrolóra:

ICollection<Car> newListCars=new Collection<Car>();

newListCars.Add(new Car(0, "BMW", false));
newListCars.Add(new Car(1, "Toyota", true));

ViewBag.Cars= newListCars;

Car.cs:

public class Car
{
public int Id { get; set; }
public string Description { get; set; }
public bool IsSold { get; set; }

public Car(int id, string text, bool sold)
{
Id = id;
Description = text;
IsSold = sold;
}
}

Takže v podstate chcem získať prístup k vybranému súboru ViewBag.Cars.IsSold

odpovede:

0 pre odpoveď č. 1

Namiesto použitia dropdownlistfor, môžete vytvoriť svoj vlastný rozbaľovací zoznam vykonaním niečoho takého:

<select name="CarName" class="iEdit" id="cars">
@foreach(Car car in ViewBag.Cars)
{
<option value="@car.Id" data-issold="@(car.IsSold ? "true" : "false")">@car.Description</option>
}
</select>

Potom môžete použiť atribút údajov vybranej možnosti takto (jQuery):

   var selected = $("#cars").find("option:selected");
var isSold = selected.data("issold");