林堅持我的MVC3數據和所遇到的一個惱人的問題:模型持久 - 模型設置爲空和不被保存,
可以說我有MyModel a = new MyModel()
& MyModel b = new MySubmodel()
我在構造函數中定義。
當我訪問第1頁:
if (MyModel.MySubmodel== null)
{
//populate with defaults
}else{
//use existing model data
}
在第1頁,我可以用Html.textboxFor
字段更改值。我有我的模型更新:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Page1(Mysubmodel model)
{
MyModel.Mysubmodel = model;
return RedirectToAction("Page2", "Tool");
}
使用手錶,我可以看到,我的模型正在更新與新的價值! (這是偉大的!),但是,如果我嘗試返回到我的網頁,以檢查結果將保存它們都設置爲null再次
代碼:
public class MyController : Controller
{
//set up initial models
public MyModel mainmodel = new MyModel();
public MySubModel submodel = new MySubModel();
public ActionResult Page1()
{
tempList.Clear();
service.XmlParseDefault(Request); //Acquire defaults
//setup model
//could possibly throw this into .services if it becomes a "fat controller"
if (mymodel.submobdel == null)
{
//Apply default values
}
return View(submodel);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Page1(submodel model)
{
mymodel.submodel = model;
return RedirectToAction("Page2", "homecontroller");
}
}
您是否在任何地方存儲模型?在Db中,或者至少在Session中?發佈完成代碼。 – 2012-01-05 11:10:37
目前它只存儲在構造函數myModel的「a」實例中。 – JustAnotherDeveloper 2012-01-05 11:15:40
@RawryLions - 我假設你在構造函數中初始化模型,但模型實際上並不存儲在構造函數中,它在控制器中定義?這個假設是否正確?如果它是在構造函數中創建的,那麼在構造函數完成後模型將會丟失。 – Dangerous 2012-01-05 11:18:47