我无法在我的选择中获得选定的值。如果选项值与项目的选定值相同,我希望在选项中看到所选值。但现在它显示了foreach循环中的最后一个值。
这是我的控制器;
public ActionResult Cart()
{
if (Session["cartpastahemen"] == null)
{
ViewBag.CartIsEmpty = "Yes";
}
else
{
Cart s = Session["cartpastahemen"] as Cart;
}
ViewBag.Drinks = db.Products.Where(y => y.Category.Name == "İçecek");
return View("Cart", Session["cartpastahemen"] as Cart);
}
这是我的观点;
@foreach (CartProduct item in Model)
{
using (Html.BeginForm("ChangeCart", "Home", new { id = item.ProductId, root = "Cart" }, FormMethod.Post))
{
if (item.Category == "Pasta")
{
@switch (item.Size)
{
case "0":
<div class="cart-sides-drinks-container">
<select name="Drinks1">
@foreach (var drink in ViewBag.Drinks)
{
<option id="Drinks1" value="@drink.Name" selected="@(item.Drinks1 == drink.Name.ToString() ? "selected" : "")">@drink.Name</option>
}
</select>
</div>
答案 0 :(得分:-1)
之前我遇到过类似的问题,虽然我并不完全清楚你的问题(jsfiddle会有所帮助)。
我认为你正面临着类似的问题。它与视图的执行方式有关,而且非常概念化,有一个讨论它的线程,我会尝试为你找到它。
在我的例子中,我填充了控制器中数组中的匹配选项。例如,您可以在控制器中创建一个如下所示的数组视图:
viewbag = [[&#34; apple&#34;,false],[&#34; orange&#34;。是的,[&#34;葡萄&#34;,false]]
然后在视图中,您可以轻松地将虚假和真实值拉入所选属性,您的问题将得到解决。
希望这会有所帮助,并鼓励我做一个upvote!