Model view controller MVC在视图中设置所选选项值

Model view controller MVC在视图中设置所选选项值,model-view-controller,option,selected,dynamic-html,Model View Controller,Option,Selected,Dynamic Html,我无法在选择中正确获取所选值。如果选项值与项目的选定值相同,我希望在选项中看到该选定值。但现在它显示了foreach循环中的最后一个值 这是我的控制器 public ActionResult Cart() { if (Session["cartpastahemen"] == null) { ViewBag.CartIsEmpty = "Yes"; } else {

我无法在选择中正确获取所选值。如果选项值与项目的选定值相同,我希望在选项中看到该选定值。但现在它显示了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>
@foreach(模型中的CartProduct项)
{
使用(Html.BeginForm(“ChangeCart”,“Home”,new{id=item.ProductId,root=“Cart”},FormMethod.Post))
{
如果(item.Category==“意大利面”)
{
@开关(项目尺寸)
{
案例“0”:
@foreach(查看包中的var饮料。饮料)
{
@饮料,名字
}

我以前遇到过类似的问题,尽管我不完全清楚您的问题(JSFIDLE会有所帮助)

我认为您也面临着类似的问题。它与视图的执行方式以及它的概念性有关,有一个线程在讨论它,我将尝试为您找到它

在我的例子中,我在控制器中的数组中填充了匹配选项。例如,您可以在控制器中创建一个数组viewbag,如下所示:

viewbag=[[“苹果”,假],“橙色”。真],“葡萄”,假]]

然后在视图中,您可以轻松地将假值和真值拉入所选属性,您的问题将得到解决


希望这对我有所帮助并鼓励我向上投票!

你到底为什么不使用强类型的
DropDownListFor()
megthid并绑定到你的模型这很容易,但我的模型是Cart,我需要发送CartProduct模型信息。这和它有什么关系(你的模型是什么没有区别)。如果型号不同,我不知道该怎么做。请帮我处理一下。为
CartProduct
(比如
\u CartProduct.cshtml
)创建一个包含您的
BeginForm()
,并且您可以使用
@Html.DropDownListFor(m=>m.Drinks1,new SelectList(ViewBag.Drinks,“Name”,“Name”),new{id=“”)
和主视图中的
@foreach(模型中的CartProduct项){@Html.Partial(“\u CartProduct”,项)}