什么是MVC中的元标记内容url的替代方法:?

时间:2014-12-11 12:53:41

标签: javascript asp.net-mvc visual-studio redirect pageload

我正在开发一个MVC项目,我正在使用相当多的java脚本,我试图将以下代码放到我的_Layout页面中:

<noscript>
    <meta http-equiv="refresh" content="0;url=/NoJScript" />
</noscript>

所以我一步一步地关注this tutorial并且url = / NoJScript只是没有像我在浏览器中关闭java脚本时那样带我去控制器方法。我刚拿到404.我当然也把视图放在了原位。我甚至尝试过完整的道路但仍然没有。我在某处读过,我甚至不应该使用元标记下的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>

1 个答案:

答案 0 :(得分:1)

您需要将操作命名为Index,就像他在教程中而不是NoJavaScript那样。或者,您可以将自己的网址更改为/NoJScript/NoJavaScript

进一步澄清:

目前,您在元标记中的网址将指向NoJScriptController上的默认操作,除非您更改了路线值,​​否则该操作将是Index操作。因此,您需要在元标记的网址中指定NoJavaScript操作,或将操作重命名为Index

注意:如果重命名操作,则还必须重命名视图。