Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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选择值_Asp.net Mvc_Asp.net Mvc 3_Selectedvalue - Fatal编程技术网

Asp.net mvc MVC3选择值

Asp.net mvc MVC3选择值,asp.net-mvc,asp.net-mvc-3,selectedvalue,Asp.net Mvc,Asp.net Mvc 3,Selectedvalue,在我的模型中: public SelectList QuestionGroupSelectList { get; set; } ------ List<QuestionGroup> questionGroupList = questionGroupRepository.GetQuestionGroup_BySurveyId(survey.Id); Dictionary<int, string> questionGroupDictionary = questionGro

在我的模型中:

public SelectList QuestionGroupSelectList { get; set; }

------
List<QuestionGroup> questionGroupList = questionGroupRepository.GetQuestionGroup_BySurveyId(survey.Id);

Dictionary<int, string> questionGroupDictionary = questionGroupList.ToDictionary(l => l.Id, l => l.Name);

QuestionGroupSelectList = new SelectList(questionGroupDictionary, "key", "value", questionGroupId);





---------------------------------------
In view:
@Html.DropDownList("QuestionGroupSelectList", Model.QuestionGroupSelectList, "Choose Here")
公共选择列表问题组选择列表{get;set;} ------ List questionGroupList=questionGroupRepository.GetQuestionGroup_BySurveyId(survey.Id); Dictionary questionGroupDictionary=questionGroupList.ToDictionary(l=>l.Id,l=>l.Name); QuestionGroupSelectList=新的SelectList(questionGroupDictionary,“键”,“值”,questionGroupId); --------------------------------------- 鉴于: @Html.DropDownList(“QuestionGroupSelectList”,Model.QuestionGroupSelectList,“选择此处”) 当我调试时,我在QuestionGroupSelectList中得到两个项目(一个Id为30,一个Id为35),它表示selectedValue为35(questionGroupId=35)

但是selectedvalue在视图中不起作用,有什么想法吗


提前谢谢

应该使用不同的属性将dropdownlist值绑定到。此外,还应使用视图模型和强类型帮助器,如下所示:

public class MyViewModel
{
    public int QuestionGroupId { get; set; }
    public SelectList QuestionGroupSelectList { get; set; }
}
然后,您可以拥有一个控制器操作,该操作填充此视图模型并将其传递给视图:

public ActionResult Foo()
{ 
    // This collection could come from anywhere 
    // normally you will query a repository here to fetch those values
    var values = new[] 
    {
        new { Key = "1", Value = "item 1" },
        new { Key = "2", Value = "item 2" },
        new { Key = "3", Value = "item 3" },
    }

    var model = new MyViewModel
    {
        // preselect the second value
        QuestionGroupId = 2,
        QuestionGroupSelectList = new SelectList(values, "Key", "Value")
    }
    return View(model);
}
最后,在你看来:

@model MyViewModel

@Html.DropDownListFor(
    x => x.QuestionGroupId, 
    Model.QuestionGroupSelectList, 
    "Choose Here"
)

为什么要访问模型中的存储库而不是控制器?我听说您应该让控制器尽可能小。不知道这是不是真的。