後在下面的代碼已被重構爲:雷丁的ViewData從字符串改變源到JsonResult類型
WorkItemModel model = new WorkItemModel();
ViewData["ServiceName"] = model.ServiceCatalogModels.First(s => s.Id == serviceId).Title;
重構的代碼:
ViewData["ServiceName"] = GetServiceName(serviceId);
public ActionResult GetServiceName(int serviceId)
{
WorkItemModel model = new WorkItemModel();
return Json(model.ServiceCatalogModels.First(s => s.Id == serviceId).Title);
}
這是怎樣的服務名稱的ViewData用於其中一個視圖中:
<input type="hidden" id="txtServiceName" value="@(ViewData["ServiceName"])" />
重構後,服務名稱不能正確捕獲,因爲它已從字符串更改爲JsonResult,並且正在以「System.Web.Mvc.JsonResult」的形式始終返回。
在重構的方法更改返回類型,如下應該解決的問題:
public string GetServiceName(int serviceId)
{
WorkItemModel model = new WorkItemModel();
return model.ServiceCatalogModels.First(s => s.Id == serviceId).Title;
}
這是解決這個以正確的方式還是有辦法通過保持返回類型的ActionResult和解決這個問題返回JsonResult?
您的「重構」代碼沒有任何意義。 ViewData用於將模型中不存在的其他數據從控制器傳遞到視圖。您不要將JsonResult分配給ViewData。我建議您在開始開發應用程序之前閱讀有關MVC的更多信息。 – ataravati 2015-04-04 19:57:07