Asp.net MVC3下拉列表控件不保持状态,为什么?

Asp.net MVC3下拉列表控件不保持状态,为什么?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我在局部视图上有一个下拉列表控件,在发布表单后,下拉列表控件的状态不会被维护 以下是部分视图cshtml代码: @model MvcApplication1.Models.TestCriteriaConsolidated @using (Html.BeginForm("Results", "Home")) { <div style="float:left"> <div style="font-weight:bold">

我在局部视图上有一个下拉列表控件,在发布表单后,下拉列表控件的状态不会被维护

以下是部分视图cshtml代码:

@model MvcApplication1.Models.TestCriteriaConsolidated


@using (Html.BeginForm("Results", "Home"))
{
 <div style="float:left">
                <div style="font-weight:bold">                
                    @Html.LabelFor(m => m.testCriteria.Year)
                </div>
                <div style="width:110px; ">   
                     @Html.DropDownListFor(m => m.testCriteria.Year, new SelectList(new[] 
                     { 

                        new SelectListItem{ Text="All Years", Value=" " },
                        new SelectListItem{ Text="2010", Value="2010" },
                        new SelectListItem{ Text="2009", Value="2009" },
                        new SelectListItem{ Text="2008", Value="2008" },
                        new SelectListItem{ Text="2007", Value="2007" },
                        new SelectListItem{ Text="2006", Value="2006" }

                     }, "Value", "Text", "1"), new { @style = "width: 100px; margin-top: 5px" })          
                </div>
            </div>

            <div style="float:left">
                <div>                
                    &nbsp;
                </div>
                <div style="width:100px; ">                                
                     <input type="submit"  value="Results" />
                </div>
            </div>
@model mvcapapplication1.Models.testcriteria
@使用(Html.BeginForm(“结果”、“主页”))
{
@LabelFor(m=>m.testCriteria.Year)
@DropDownListFor(m=>m.testCriteria.Year,new SelectList(new[]
{ 
新建SelectListItem{Text=“所有年份”,Value=”“},
新建SelectListItem{Text=“2010”,Value=“2010”},
新建SelectListItem{Text=“2009”,Value=“2009”},
新建SelectListItem{Text=“2008”,Value=“2008”},
新建SelectListItem{Text=“2007”,Value=“2007”},
新建SelectListItem{Text=“2006”,Value=“2006”}
}新的{@style=“宽度:100px;页边距顶部:5px”})
}

这是我的控制器代码:

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

    public ActionResult Results()
    {
        string year = Request.Form["testCriteria.Year"];

        List<TestCriteriaResults> test = new List<TestCriteriaResults>();

        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "one", Value3="three", Value4="Four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3="three", Value4="four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });           

        TestCriteriaConsolidated combined = new TestCriteriaConsolidated();
        combined.testCriteriaResults = test;

        return PartialView(combined);
    }
public ActionResult Index()
{                     
返回视图();
}
公共行动结果()
{
字符串year=Request.Form[“testCriteria.year”];
列表测试=新列表();
添加(新的TestCriteriaResults{Value1=“one”,Value2=“one”,Value3=“three”,Value4=“Four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
TestCriteriaConsolidated combined=新的TestCriteriaConsolidated();
combined.testCriteriaResults=测试;
返回部分视图(合并);
}
新修改的操作方法(仍不保持状态):

public ActionResult结果()
{
字符串year=Request.Form[“testCriteria.year”];
列表测试=新列表();
添加(新的TestCriteriaResults{Value1=“one”,Value2=“one”,Value3=“three”,Value4=“Four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
TestCriteriaConsolidated combined=新的TestCriteriaConsolidated();
TestCriteria=newTestCriteria(){Year=Year};
combined.testCriteriaResults=测试;
combined.testCriteria=标准;
返回部分视图(合并);
}

组合。testCriteria.Year
需要使用您发布的表单值进行设置

试试这个

[HttpPost]
    public ActionResult Results(TestCriteriaConsolidated form)
    {
        List<TestCriteriaResults> test = new List<TestCriteriaResults>();
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "one", Value3 = "three", Value4 = "Four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });

        TestCriteria criteria = new TestCriteria() { Year = form.testCriteria.Year };

        TestCriteriaConsolidated combined = new TestCriteriaConsolidated
                                                {
                                                    testCriteriaResults = test,
                                                    testCriteria = criteria
                                                };
        return View(combined);
    }

    public ActionResult Results() 
    { 
        return View(new TestCriteriaConsolidated());
    }
[HttpPost]
公共行动结果(TestCriteria合并表格)
{
列表测试=新列表();
添加(新的TestCriteriaResults{Value1=“one”,Value2=“one”,Value3=“three”,Value4=“Four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
TestCriteria=newTestCriteria(){Year=form.TestCriteria.Year};
TestCriteriaConsolidated combined=新的TestCriteriaConsolidated
{
testCriteriaResults=测试,
testCriteria=标准
};
返回视图(组合);
}
公共行动结果()
{ 
返回视图(新TestCriteriaConsolidated());
}

组合。testCriteria.Year
需要使用您发布的表单值进行设置

试试这个

[HttpPost]
    public ActionResult Results(TestCriteriaConsolidated form)
    {
        List<TestCriteriaResults> test = new List<TestCriteriaResults>();
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "one", Value3 = "three", Value4 = "Four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });
        test.Add(new TestCriteriaResults { Value1 = "one", Value2 = "two", Value3 = "three", Value4 = "four" });

        TestCriteria criteria = new TestCriteria() { Year = form.testCriteria.Year };

        TestCriteriaConsolidated combined = new TestCriteriaConsolidated
                                                {
                                                    testCriteriaResults = test,
                                                    testCriteria = criteria
                                                };
        return View(combined);
    }

    public ActionResult Results() 
    { 
        return View(new TestCriteriaConsolidated());
    }
[HttpPost]
公共行动结果(TestCriteria合并表格)
{
列表测试=新列表();
添加(新的TestCriteriaResults{Value1=“one”,Value2=“one”,Value3=“three”,Value4=“Four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
添加(新的TestCriteriaResults{Value1=“one”,Value2=“two”,Value3=“three”,Value4=“four”});
TestCriteria=newTestCriteria(){Year=form.TestCriteria.Year};
TestCriteriaConsolidated combined=新的TestCriteriaConsolidated
{
testCriteriaResults=测试,
testCriteria=标准
};
雷图
TestCriteriaConsolidated combined = new TestCriteriaConsolidated();
combined.testCriteriaResults = test;
combined.testCriteria.Year = Request.Form["testCriteria.Year"];