ControlsLangJsFileメソッドを使用して、ASP.NET MVCコントローラーにディクショナリーという名前を付けています。メソッドは、JavaScript変数を含むユーザーコントロール(ASCX)のビューを返します。
メソッドを呼び出すと、解析された文字列を含む変数が返されますが、コンテンツタイプはhtml/textです。それは:application/x-javascript
public ActionResult ControlsLangJsFile()
{
return View("~/Views/Dictionary/ControlsLangJsFile.ascx",);
}
どうすればこれを達成できますか?
ユーザーコントロールはContentType = "text/xml"を受け入れません
解決:
public ActionResult ControlsLangJsFile()
{
Response.ContentType = "text/javascript";
return View("~/Views/Dictionary/ControlsLangJsFile.ascx");
}
JSを使用してかみそりのビューを構築しているときに同じ質問があり、@ jmavのソリューションを使用しようとしました:
public ActionResult Paths()
{
Response.ContentType = "text/javascript"; //this has no effect
return View();
}
View()を返す場合は機能しません。コントローラーメソッドで何が割り当てられていても、ビューのレンダリングによってコンテンツタイプ自体が設定されるようです。
代わりに、ビューコード自体で割り当てを行います。
// this lives in viewname.cshtml/vbhtml
@{
this.Response.ContentType = "text/javascript";
}
// script stuff...
このように、それに応じてコンテンツタイプを変更します。
試してください:
return Json(new
{
uCode = SysContext.CurrentUserCode,
uPwd = SysContext.CurrentUserPwd,
rMe = SysContext.RememberMe
}, "application/json", JsonRequestBehavior.AllowGet);