我正在一个MVC项目中使用大量的Java脚本,我正在尝试将以下代码放入_Layout页面:
<noscript>
<meta http-equiv="refresh" content="0;url=/NoJScript" />
</noscript>
因此,我一步一步地遵循了本教程,并且当我在浏览器中关闭Java脚本时,url = / NoJScript并没有像我对他那样使用控制器方法。我刚得到一个404。当然,我也将其放置在视图中。我什至试着全力以赴,仍然一无所获。我读到某个地方甚至都不应该使用meta标记下的URL,因为某些浏览器中的URL不可靠。那么,在浏览器中关闭Java脚本时,是否有代码可以自动将我重定向到我的控制器和操作结果方法?
这是NoJScript控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Pansense.Controllers
{
public class NoJScriptController : Controller
{
//
// GET: /NoJScript/
[AllowAnonymous]
public ActionResult NoJavaScript()
{
return View("NoJavaScript");
}
}
}
以下是与其方法NoJavaScript相同的视图方式:
@{
ViewBag.Title = "JavaScript required";
Layout = null; // <= Important!
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My MVC App</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
To use this application JavaScript is required.
</body>
</html>
您需要命名自己的操作,以使其Index
像在本教程中一样,而不是NoJavaScript
。或者您可以将网址更改为/NoJScript/NoJavaScript
进一步澄清:
当前,NoJScriptController
除非您更改了路由值,否则meta标记中的url将指向默认动作,除非您更改了路由值Index
。因此,您需要NoJavaScript
在meta标签的url中指定操作,或将操作重命名为Index
。
注意:如果重命名动作,则还必须重命名视图。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句