すると、次の
public JsonResult Index2(FormCollection fc)
{
var goalcardWithPlannedDate = repository.GetUserGoalCardWithPlannedDate();
return Json(goalcardWithPlannedDate.Select(x => new GoalCardViewModel(x)), "text/html", JsonRequestBehavior.AllowGet);
}
を試みることはCのコンテンツタイプを設定することが重要です。それは良い解決策ではありませんが、場合によっては機能します。
代わりに、あなたはまた、よりよい解決策を試すことができます。
var scriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonString = scriptSerializer.Serialize(goalcardWithPlannedDate.Select(x => new GoalCardViewModel(x)));
次にあなたが文字列表現であなたが望むすべてを行うことができます。それは実際にJsonResult
が内部で行うことです。 Btw、同じ成功をあなたはここで任意のjsonシリアライザを使用することができます。
クライアントでアクセスする場合は、コードを変更する必要はありません。
$.post('<%= Url.Action("Index2") %>', { /* your data */ }, function(json) { /* actions with json */ }, 'json')
あなたは、あなたのビューモデルにそれを渡したい場合は::jQueryのを使用する場合には
[HttpPost]
public ActionResult Index2(FormCollection fc)
{
var goalcardWithPlannedDate = repository.GetUserGoalCardWithPlannedDate();
return PartialView(new MyModel { Data = goalcardWithPlannedDate.Select(x => new GoalCardViewModel(x)) });
}
JavaScriptコードで部分的に表示したいですか? –