簡體   English   中英

ASP.NET MVC4 Controller的ActionMethod用於ajax的正確途徑

[英]Right path to ASP.NET MVC4 Controller's ActionMethod to use for ajax

我有以下MVC4應用程序結構:

申請結構
從Index.cshtml我試圖對位於我的HomeController.cs中的SomeActionMethod()進行ajax調用

Index.cshtml看起來像:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script src="Scripts/jquery-2.2.2.min.js"></script>
</head>
<body>
    <script>
    $.ajax({
        url: '@Url.Action("SomeActionMethod", "HomeController")',
        type: "POST",
        cache: false,
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert("fail");
        }
    });
    </script>
</body>
</html>

HomeController.cs看起來像:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace SapRepLanciatoreCAS.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        //trying to invoke from ajax
        [HttpPost]
        public ActionResult SomeActionMethod()
        {
            return Json(new { foo = "bar", baz = "Blech" });
        }
    }
}

當我啟動我的應用程序時,我收到此錯誤: 在此輸入圖像描述

路徑或控制器有什么問題?

MVC將controller名稱的第一部分考慮在內,即忽略Controller關鍵字(請參閱您的視圖,稱為Home )。 所以你的網址應該是 - 將HomeController更改為Home

url: '@Url.Action("SomeActionMethod", "Home")',
url:'@Url("Method Name","Controller Name")' 

希望這會幫助你。

暫無
暫無

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

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