我有一個包含Html.DropDownList的頁面,它接受一個viewdata參數。問題是,當用戶點擊保存它通過調用ModelState.IsValid驗證模型,如果失敗我希望頁面顯示錯誤(這工作正常)將viewdata傳回給控制器以便與下拉列表一起使用
我的問題是,該viewdata爲下拉丟失,這意味着我不知道是什麼狀態列表框是被驗證了之前的錯誤(有一個Ajax調用,允許添加,從列表中減去的東西 - 阿恩這個工作正常隔離)
編輯 - 正如下面在答覆答案中所討論的那樣:實際上我需要整個列表框。當前選擇的值不是必需的。基本上,該列表包含未被標記爲文章的作者。當用戶添加一個作者的Javascript函數將其從列表中刪除並將其添加到我可以跟蹤的文本框中。我的問題是,我似乎無法獲得列表框的當前狀態(我欣賞視圖狀態在請求結束時實際上已丟失) - 結束編輯(希望這可以使其更清晰)
代碼如下:
在編輯頁面
${Html.DropDownList("AuthorsDropDown")} <input type="button" onClick="removeOptions(Authors)"; value='Add author to article' />
在上攢動
控制器public ActionResult Edit(Article form)
{
var articleList = articleMapper.MapForLists(form);
var authorList = new AuthorRepository().FindAll();
foreach (var author in articleList.Authors)
authorList.Remove(author);
ViewData["AuthorsDropDown"] = new SelectList(authorList, "Id", "GetFullName");
return View("Edit", articleList);
}
的編輯操作
[ValidateModel(typeof (ArticleDto)), AcceptVerbs(HttpVerbs.Post), ValidateInput(false)]
public ActionResult Save(ArticleDto form)
{
return SaveContent(form, articleDto => RedirectToAction<NewsController>(c => c.Index(null)),PopulateIdentities);
}
這是一個漫長的一週,所以我可能只是作爲一個有點慢。
感謝您花時間看
感謝您的回答,我需要整個列表框回來。當前選擇的值不是必需的。基本上,該列表包含未被標記爲文章的作者。當用戶添加一個作者的Javascript函數將其從列表中刪除並將其添加到我可以跟蹤的文本框中。 我的問題是,我似乎無法得到列表框的當前狀態返回 – 2009-07-05 08:55:28