簡體   English   中英

在MVC中,元標記內容url的替代方法是什么?

[英]What is an alternative in MVC to meta tag content url:?

我正在一個MVC項目中使用大量的Java腳本,正在嘗試將以下代碼放入_Layout頁面:

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

因此,我一步一步地遵循了本教程 ,並且當我在瀏覽器中關閉Java腳本時,url = / NoJScript並沒有帶我去使用控制器方法。 我剛得到一個404。當然,我也將其放置在視圖中。 我什至試圖全力以赴,卻一無所獲。 我讀到某個地方甚至都不應該使用meta標記下的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

進一步澄清:

當前,您在meta標記中的網址將指向NoJScriptController上的默認操作,除非您更改了路由值,否則它將為Index操作。 因此,您需要在meta標簽的url中指定NoJavaScript操作,或將操作重命名為Index

注意:如果重命名動作,則還必須重命名視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM