コードをステップ実行するときに呼び出されていないビューがあります。コントローラーのアクションに到達してビューを返しますが、ビューをロードせず、現在のページにとどまります。
特定のページでボタンをクリックすると、次のページを呼び出す ajax 投稿が作成され、これは読み込まれません。
私のコントローラーアクションは次のようになります。
public ActionResult Comparison(int[] y)
{
CostModel.Getsuff(y);
return View(CostModel);
}
私のルートマップは次のようになります。
routes.MapRoute(
name: "Compare",
url: "Category/Comparison/{*xxxx}",
defaults: new { Controller = "Category", Action = "Comparison" }
).RouteHandler
= new CategoriesRouteHandler();
public class CategoriesRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
IRouteHandler handler = new MvcRouteHandler();
var vals = requestContext.RouteData.Values;
var list = vals["xxxx"].ToString().Split(',');
int[] y= new int[list.Length];
for (int i=0; i < list.Length; i++)
int.TryParse(list[i].ToString(),out y[i]);
vals.Add("y", y);
return handler.GetHttpHandler(requestContext);
}
}
私のアヤックス
$.ajax({
type: "POST",
url: '@Url.Action("Comparison", "Category", new { Categories = "PLACEHOLDER"})'.replace('PLACEHOLDER', arr),
dataType: "json",
traditional: true,
success: function(msg){alert(msg)}
} );
以前にトレースしたときに述べたように、それは ajax 呼び出しを正常に実行し、ビューを起動しないコントローラーでアクションを実行します。エリアがどこにも定義されていないという事実と関係があるのではないかと思いましたか?おそらくそれを捨てて、MVC 4のどこにも別の領域を指定することができませんが、私はMVCが初めてです。どんな助けでも大歓迎です。