Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 未选择项的MVC3下拉列表(Mvc错误?)_Asp.net Mvc_Asp.net Mvc 3_Html.dropdownlistfor_Mvc Editor Templates - Fatal编程技术网

Asp.net mvc 未选择项的MVC3下拉列表(Mvc错误?)

Asp.net mvc 未选择项的MVC3下拉列表(Mvc错误?),asp.net-mvc,asp.net-mvc-3,html.dropdownlistfor,mvc-editor-templates,Asp.net Mvc,Asp.net Mvc 3,Html.dropdownlistfor,Mvc Editor Templates,我有一个简单的测试模型: public class MyModel { public InnerModel InnerModel { get; set; } } public class InnerModel { public int Value { get; set; } } 在控制器中: public ActionResult Index() { var model = new MyModel();

我有一个简单的测试模型:

  public class MyModel
    {
        public InnerModel InnerModel { get; set; }

    }

    public class InnerModel
    {
        public int Value { get; set; }
    }
在控制器中:

public ActionResult Index()
{
    var model = new MyModel();

    model.InnerModel = new InnerModel { Value = 3 };

    return View("MyModelView", model);
}
MyModelView:

@model MyModel

@{
    var items = new List<SelectListItem>()
                    {
                        new SelectListItem {Text = "one", Value = "1"},
                        new SelectListItem {Text = "two", Value = "2"},
                        new SelectListItem {Text = "three", Value = "3"}
                    }; }


@Html.DropDownListFor(m=>m.InnerModel.Value,items,"no_selected")
加载页面时,我看到:

为什么??MVC错误

更新:
这才是真正的臭虫

使用@Model InnerModel更改此

@Html.DropDownListFor(m=>m.InnerModel.Value,items,"no_selected")


使用@Model InnerModel更改此设置

@Html.DropDownListFor(m=>m.InnerModel.Value,items,"no_selected")


创建所选项目列表时,请尝试以下操作:

var items = new SelectList(
        new[] 
        {
            new { Value = "1", Text = "one" },
            new { Value = "2", Text = "two" },
            new { Value = "3", Text = "three" },
        }, 
        "Value", 
        "Text", 
        Model.Value
    )

以下是发生这种情况的原因说明:

在创建所选项目列表时,请尝试以下操作:

var items = new SelectList(
        new[] 
        {
            new { Value = "1", Text = "one" },
            new { Value = "2", Text = "two" },
            new { Value = "3", Text = "three" },
        }, 
        "Value", 
        "Text", 
        Model.Value
    )

以下是发生这种情况的原因解释:

对不起,输入错误。在InnerModel编辑器@Html.DropDownListFor中(m=>m.Value,项,“未选择”)。问题正确。对不起,输入错误。在InnerModel编辑器@Html.DropDownListFor中(m=>m.Value,项,“未选择”)。正确的问题。如果这是您经常做的事情,那么将其放入HTML帮助程序中,它将使其变得漂亮:)您链接的页面上说“仅当此lambda表达式是一个简单的属性访问表达式时”。我的lambda很简单。我不明白为什么它不起作用。你是对的,这是MVC中的一个缺陷,请看-上面的解决方案是一个解决方法。看起来它在MVC4中是固定的。如果这是您经常做的事情,则将其放入HTML帮助程序中,然后它将使其变得漂亮:)您链接的页面上显示“仅当此lambda表达式是简单的属性访问表达式时”。我的lambda很简单。我不明白为什么它不起作用。你是对的,这是MVC中的一个缺陷,请看-上面的解决方案是一个解决方法。看起来它在MVC4中被修复了。
var items = new SelectList(
        new[] 
        {
            new { Value = "1", Text = "one" },
            new { Value = "2", Text = "two" },
            new { Value = "3", Text = "three" },
        }, 
        "Value", 
        "Text", 
        Model.Value
    )