@ Url.Action无法处理AJAX调用

时间:2018-02-11 22:26:49

标签: c# jquery ajax asp.net-mvc razor

我正在尝试使用AJAX将一组值从我的视图发布到我的控制器。但是,不是将URL.Action转换为相应的控制器和操作。它在URL中显示为url.action。

这是我的代码:

$('#addBtn').click(function() {
var patientId = $("#txtPatientId").val();

$.ajax({
    cache : false,
    url: '@Url.Action("AddPatient","Home")',
    type: 'POST',
    data: {patientId: patientId},
    }).done({});
});

控制器:

[HttpPost]
public ActionResult AddPatient(string patientId)
{

}

我在网络标签中看到的URL在尝试访问URL localhost/@Url.Action(" AddPatient"," Home")时给出了404错误。

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

所以评论说你不能在cshtml文件之外使用razor codess,即在外部js文件中

你有两个选择

1尝试静态网址

$.ajax({
    cache : false,
    url: '/Home/AddPatient'
    type: 'POST',
    data: {patientId: patientId},
    }).done({});
});

2将url保存在cshtml文件的全局变量中,然后在外部js文件中读取它 catch确保在全局变量被删除和消除后将文件引用