我有一個下拉上的局部視圖列表控制和張貼下拉列表控制的狀態不能維持MVC3下拉列表控件不保持狀態,爲什麼?
下面是部分視圖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>
</div>
<div style="width:100px; ">
<input type="submit" value="Results" />
</div>
</div>
}
這裏是我的CONTROLER代碼:
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 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();
TestCriteria criteria = new TestCriteria() { Year = year };
combined.testCriteriaResults = test;
combined.testCriteria = criteria;
return PartialView(combined);
}
幾個問題......是表單發回到同一頁面?如果沒有,那究竟是不是持續?看起來你並沒有將年份添加到視圖模型中。 – 2011-04-20 02:21:21
我有一個ddl中具有年份的標準部分。我在從部分視圖返回結果後堅持在ddl中選擇的那一年。我希望回答這個問題?謝謝! – KeelRisk 2011-04-20 02:28:24
視圖數據不會從請求持續到下一個響應。在將其傳遞給視圖之前,您需要在新模型中設置Year。這應該夠了吧。 – 2011-04-20 02:36:17