Мой домашний контроллер выглядит следующим образомПочему я получаю идентификатор вместо текста из раскрывающегося списка?
public ActionResult Index()
{
List<District> allDistrict = new List<District>();
List<Tehsil> allTehsil = new List<Tehsil>();
List<SubTehsil> allSubTehsil = new List<SubTehsil>();
using (FarmerBDContext db = new FarmerBDContext())
{
allDistrict = db.Districts.ToList();
}
ViewBag.DistrictId = new SelectList(allDistrict, "DistrictId", "DistrictName");
ViewBag.TehsilId = new SelectList(allTehsil, "TehsilId", "Tehsilname");
ViewBag.SubTehsilId = new SelectList(allSubTehsil, "SubTehsilId", "SubTehsilName");
return View();
}
Мой район, Tehsil и SubTehsil выпадающий становятся заселена из другого класса модели.
Район класса
public int DistrictId { get; set; }
public string DistrictName { get; set; }
public virtual ICollection<Tehsil> tbTehsils { get; set; }
Мой Tehsil И Subtehsil класс похожи, но имеют отношения/б их
Эта модель класса сильно типизированных к моей форме Index.cshtml
public string DistrictName { get; set; }
public string TehsilName { get; set; }
public string SubTehsilName { get; set; }
.... // Other Fields
И мой индекс выглядит так:
<table>
<tr>
<td class="editor-label Label">
@Html.LabelFor(model => model.DistrictName)
</td>
<td>
@Html.DropDownList("DistrictName", (SelectList)@ViewBag.DistrictId, " -- Select District -- ", new { @class = "ddl"})
</td>
</tr>
<tr>
<td></td>
<td class="editor-field">
@Html.ValidationMessageFor(model => model.DistrictName)
</td>
</tr>
<tr>
<td class="editor-label Label">
@Html.LabelFor(model => model.TehsilName)
</td>
<td>
@Html.DropDownListFor(model => model.TehsilName, @ViewBag.TehsilId as SelectList, "Select Tehsil", new { @class = "ddl" })
</td>
</tr>
<tr>
<td></td>
<td class="editor-field">
@Html.ValidationMessageFor(model => model.TehsilName)
</td>
</tr>
....
</table>
<p>
<input type="submit" value="Details" />
</p>
Я обращаюсь к ним в другом контроллере, подобном этому, который основан на моих свойствах модели.
ViewBag.DistrictName = model.DistrictName;
ViewBag.TehsilName = model.TehsilName;
ViewBag.SubTehsilName = model.SubTehsilName;
Я также попытался доступа текст выпадающего списка, используя имя DropDownList
Request.Form["DistrictName"].ToString()
и даже использовали
FormCollection form
Еще одна вещь, следует отметить, что, когда я использую простой
<select>
<option id=1>Abc</option>
</select>
Я получаю g Текст, который является абс.
Показать код действия POST, которое вы вызываете. –
Пожалуйста, укажите только код, имеющий отношение к вашему вопросу. См. [Как создать минимальный, полный и проверенный пример] (http: // stackoverflow.com/help/mcve) –
Спасибо, Стивен, я помню это – lokopi