我正在尝试使用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错误。
我错过了什么吗?
答案 0 :(得分:1)
所以评论说你不能在cshtml文件之外使用razor codess,即在外部js文件中
你有两个选择
1尝试静态网址
$.ajax({
cache : false,
url: '/Home/AddPatient'
type: 'POST',
data: {patientId: patientId},
}).done({});
});
2将url保存在cshtml文件的全局变量中,然后在外部js文件中读取它 catch确保在全局变量被删除和消除后将文件引用