【发布时间】:2017-09-28 22:36:23
【问题描述】:
我只是想将一个 SelectList 放入 ViewBag,但之后我无法访问它。
这是我的代码:
// GET: Content/CreateSerie
public ActionResult CreateSerie()
{
ViewBag.originalLang = new SelectList(db.Lang, "originalLang", "originalLang");
return View();
}
如果我使用调试器在 ViewBag.originalLang 分配之后执行步骤并使用表达式评估器,我会得到
但是,如果我深入查看 ViewBag,我可以看到
这真的很奇怪,我不明白为什么我不能正常访问它。当然,我也无法从视图中访问它。
编辑:这是 erdi yılmaz 要求的我的观点:
@model e08projh17.Models.Content
@{
ViewBag.Title = "Créer une série";
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
}
<h2>CreateSerie</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Content</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<!-- Lots of stuff ... -->
<div class="form-group">
@Html.LabelFor(model => model.originalLang, "Langue originale", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.originalLang, (SelectList)ViewBag.originalLang, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.originalLang, "", new { @class = "text-danger" })
</div>
</div>
<!-- Lots of stuff ... -->
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>@Html.ActionLink("Back to List", "Index")</div>
@section Scripts { @Scripts.Render("~/bundles/jqueryval") }
【问题讨论】:
-
请分享您的看法
-
您不能对绑定到的属性和 SelectList 使用相同的名称 - 请参阅 this answer(这与您接受的错误和不良做法答案无关)
-
@StephenMuecke 谢谢你的解释。接受的答案可能不是很好的做法,但它似乎对我有用。无论如何,我已经投票支持重复以将人们与您的答案联系起来。
标签: c# asp.net asp.net-mvc entity-framework