Asp.net mvc 3 在视图中显示dropdownlist时遇到问题

Asp.net mvc 3 在视图中显示dropdownlist时遇到问题,asp.net-mvc-3,Asp.net Mvc 3,我基本上是想在我的数据输入视图上显示一个dropdownlist,而dropdownlist一直给我一个错误“表达式树可能不包含动态操作”。我已将“@Model MyModel”添加到视图顶部,但仍然无法通过此错误。有人知道如何解决这个问题吗?我有一个控制器,看起来像这样 using MvcApplication1.Models; namespace MvcApplication1.Controllers { public class MyController : Controlle

我基本上是想在我的数据输入视图上显示一个dropdownlist,而dropdownlist一直给我一个错误“表达式树可能不包含动态操作”。我已将“@Model MyModel”添加到视图顶部,但仍然无法通过此错误。有人知道如何解决这个问题吗?我有一个控制器,看起来像这样

using MvcApplication1.Models;


namespace MvcApplication1.Controllers
{
    public class MyController : Controller
    {

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult EnterInfo()
        {
            GetUT myGetUT = new GetUT();
            ViewBag.uts = GetOptions();
            return View(myGetUT);
        }

        [HttpPost]
        public ActionResult EnterInfo(GetUT myGetUT)
        {
            ViewBag.uts = GetOptions();
            return View(myGetUT);
        }

        private List<UT> GetOptions()
        {
            List<UT> uts = new List<UT>();
            uts.Add(new UT() { ID = 1, Name = "1st" });
            uts.Add(new UT() { ID = 2, Name = "2nd" });
            uts.Add(new UT() { ID = 3, Name = "3rd" });
            uts.Add(new UT() { ID = 4, Name = "4th" });

            return uts;
        }

    }
}
使用mvcapapplication1.模型;
命名空间MVCAPApplication1.Controllers
{
公共类MyController:Controller
{
公共行动结果索引()
{
返回视图();
}
公共操作结果EnterInfo()
{
GetUT myGetUT=新GetUT();
ViewBag.uts=GetOptions();
返回视图(myGetUT);
}
[HttpPost]
公共操作结果输入信息(GetUT myGetUT)
{
ViewBag.uts=GetOptions();
返回视图(myGetUT);
}
私有列表GetOptions()
{
列表uts=新列表();
Add(新的UT(){ID=1,Name=“1st”});
Add(新的UT(){ID=2,Name=“2nd”});
添加(新的UT(){ID=3,Name=“3rd”});
Add(新的UT(){ID=4,Name=“4th”});
返回uts;
}
}
}
一个看起来像

@Model MyModel

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>EnterInfo</title>
</head>
<body>
    <div>

        @Html.DropDownListFor(x => x.UTID, new SelectList(ViewBag.uts, "ID", "Name", Model.UTID))
        Enter an Amount :-<input type="text" name="Amount" /><br />
        <input type="submit" value="Submit Info" />

    </div>
</body>
</html>
@Model-MyModel
@{
布局=空;
}
企业信息
@DropDownListFor(x=>x.UTID,新选择列表(ViewBag.uts,“ID”,“Name”,Model.UTID))
输入金额:-

谢谢你的帮助。

嗯,ViewBag是一种动态类型,所以我想这就是它所抱怨的。尝试将
public List UTs{get;set;}
作为
MyModel
的属性,并将助手更改为使用模型中的UTs属性。像这样:

控制器:

public ActionResult EnterInfo()
{
    GetUT myGetUT = new GetUT();
    myGetUT.UTs = GetOptions();
    return View(myGetUT);
}
视图:

编辑:如果不明显,则应将视图类型化为GetUT类型(因为这是您在EnterInfo操作中传递给view()函数的内容)-我假设您所说的
@Model MyModel
就是这个意思。如果没有,请将其更改为
@Model GetUT
,并将该属性放在
GetUT
类上

@Html.DropDownListFor(x => x.UTID, 
    new SelectList(Model.UTs, "ID", "Name", Model.UTID))`