我想知道是否有一個很好的示例如何使用模型綁定在MVC中編輯ASP.NET配置文件設置。ASP.NET模型綁定到ProfileCommon
目前我有:
- 一個自定義的ProfileCommon類從ProfileBase的。
- 強類型視圖(類型ProfileCommon)
- 獲取和發佈與ProfileCommon和相關視圖一起使用的控制器上的操作。 (見下面的代碼)。
查看配置文件詳細信息的工作 - 窗體出現所有的字段都正確填充。
然而,保存表單卻給出異常:System.Configuration.SettingsPropertyNotFoundException:找不到設置屬性'FullName'。
思考這個問題很有意義,因爲模型綁定將實例化ProfileCommon類本身,而不是抓取httpcontext的一個。此外,保存可能是多餘的,因爲我認爲配置文件在修改時會自動保存 - 在這種情況下,即使驗證失敗也可能會自動保存。對?
無論如何,我目前的想法是,我可能需要爲模型綁定創建一個單獨的Profile類,但是當我已經有一個非常類似的類時,它似乎有點多餘。
這是否有一個很好的例子呢?
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Edit()
{
return View(HttpContext.Profile);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(ProfileCommon p)
{
if (ModelState.IsValid)
{
p.Save();
return RedirectToAction("Index", "Home");
}
else
{
return View(p);
}
}
感謝馬克,我認爲這可能會工作,但我想我試圖做這個錯誤的方式。問題是,如果對ProfileCommon類的任何驗證檢查都失敗,則已應用這些更改,對象標記爲骯髒且無論如何寫出。 我已經通過使用第二個類似的類(ProfileEdit)解決了這個問題,該類具有驗證邏輯和方法以應用於/從ProfileCommon類。它是更多的代碼,但很好地分離它,它只是工作。 –