MVC4 アプリケーションを Web サーバーに公開すると、奇妙な問題が発生しました。
すべてが正常に機能しており、ルーティング構成でいくつかの設定を変更しました。
問題は、localhost で Web サイトを実行すると、すべてのリンクが見事にレンダリングされることです。
@Html.ActionLink("Market Summary","Market","Home")
URL として表示されます。
ただし、プロジェクトをサーバー (winhost) にアップロードすると、リンクにカーソルを合わせると、単にドメイン名がポイントされます。私のプロジェクトのどのページでもこれを行います...
ローカルホストで正常に動作するため、なぜこれが発生するのかわかりません。
これが私のルーティング設定です。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;
namespace ReportGenerator.Web
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}/{param2}/{param3}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional , param2 = UrlParameter.Optional, param3 = UrlParameter.Optional }
);
}
}
}
更新: リンクは実際には空白になります。 <a href="">
更新 2: コントローラーから param2 と param2 を削除すると、すべてが期待どおりに機能します... なんてこった!?
更新 3: 問題は解決しました。非常に奇妙な問題です。私の答えを見てください。