【发布时间】:2018-01-22 06:04:56
【问题描述】:
这是我从 timeclock.controller 类库项目中调用 Controller 的 jQuery 代码:
function getCountries()
{
// alert();
var obj = {};
obj.countryName = '';
$.ajax({
type: 'GET',
url: '/Business/GetCountries',
dataType: 'json',
async: false,
success: function (data) {
console.log(data);
},
error: function (err) {
console.log(err);
}
});
}
这是我要调用的另一个类库项目中的控制器:
namespace timeclock.controller
{
class BusinessController : System.Web.Mvc.Controller
{
[HttpGet]
[Route("Countroller/GetCountries")]
public JsonResult GetCountries(string countryName)
{
//List<countries_model> countrylist = null;
var myresult = "{'name':'John', 'age':31, 'city':'New York' }";
return Json(myresult,JsonRequestBehavior.AllowGet);
}
}
}
这是我的主项目的路由配置文件:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "signup", id = UrlParameter.Optional },
namespaces: new[] { "timeclock.controller" }
);
routes.MapMvcAttributeRoutes();
}
【问题讨论】:
-
当前设置中发现的错误是什么?是否存在纯 404 或其他错误代码?
-
它给我 404 错误“服务器响应状态为 404”
-
class BusinessController=> 我认为这个类应该设置为public。另外[Route("Countroller/GetCountries")]应该设置为[Route("Business/GetCountries")]并使用url: '@Url.Action("GetCountries", "Business")'。 -
我已根据您的指南更改了代码,但它给了我 404 的错误
-
我得到了解决方案谢谢@Tetsuya Yamamoto
标签: jquery asp.net ajax asp.net-mvc