あなたは、このシナリオのために特別な処理を実装する場合は、あなたが望むこと/{*arbitrary_url_part}
スキームを使用して新しいルートを追加する。例えば、ルート
routes.MapRoute(
"SampleRoute",
"constant_path/{*variable_part}",
new {controller = "ErrorController", action = "ShowError", variable_part = ""}
);
は、これらすべてのURLに一致します:
http://Server_url/constant_path/
(variable_part == "")
http://Server_url/constant_path/aaaaaaaaaaaaa
(variable_part == "aaaaaaaaaaaaa")
http://Server_url/constant_path/script alert('hello') /script
(variable_part = = "スクリプトの警告( 'hello')/スクリプト ')
などスラッシュやその他の特殊記号のユーザーpu参考のためにMSDN: ASP.NET Routing - Handling a Variable Number of Segments in a URL Pattern を参照してください。
あなたはすべてこのようなものを実装することに自分自身を気にしたいだけのユーザに空想404ページを表示したくない場合は、標準のASP.NETの機能を使用して検討するかもしれない - などを扱う上Custom error pages
その他の戦略をリクエストはThis blog postにもあります。
UPDATE
あなたが最初の道を行くしたい場合は、いくつかのカスタムエラーページを表示するためのコントローラとビューを追加することもあります。あなたはルートと同じ名前を取る場合は、あなたのプロジェクトに以下を追加する必要があります。このような方法ShowError
でクラスErrorController
を含む
ファイルControllers/ErrorController.cs
、:
using System.Web.Mvc;
namespace Your_app_name_here.Controllers
{
public class ErrorController : Controller
{
public ActionResult ShowError(string variable_part)
{
return View((object)variable_part); // Cast to object is required here
}
}
}
ファイルViews/Error/ShowError.aspx
を -
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<HTML>
<HEAD><TITLE>Error page title here</TITLE></HEAD>
<BODY>
<H1>variable_part = <%=Model.ToString()%></H1>
</BODY>
次のようなエラー情報を表示する単純なHTMLビューです。
あなたのアプリを保護しようとしているシナリオは何ですか?指定したURLのようなURLは、アドレスバーにユーザーが入力しただけで問題ありません。また、いくつかのコードを提供できますか? –
Sergey、ご意見ありがとうございました。私は私の質問を更新しました。 「追加情報」セクションをご覧ください。再度、感謝します。 –