Asp.net mvc 如何使用Ajax将URL id从Asp.net视图发送到控制器?
我想使用Ajax将数据从asp.net MVC视图发送到我的控制器。我可以从文本框将数据发送到控制器。。问题是如何使用Ajax将URL id添加到控制器中的post数据中。请参阅下面的代码 我的URLAsp.net mvc 如何使用Ajax将URL id从Asp.net视图发送到控制器?,asp.net-mvc,Asp.net Mvc,我想使用Ajax将数据从asp.net MVC视图发送到我的控制器。我可以从文本框将数据发送到控制器。。问题是如何使用Ajax将URL id添加到控制器中的post数据中。请参阅下面的代码 我的URL http://localhost:20487/MyController/MyMethod/1 我的脚本 //Save if valid if (isAllValid) { var data = { /
http://localhost:20487/MyController/MyMethod/1
我的脚本
//Save if valid
if (isAllValid) {
var data = {
//project_id: $('#project_id').val().trim(),
project_id= *I want get the ID from Above URL*
title: $('#title').val().trim(),
description : $('#description').val().trim(),
ProjComponentActivities: componentActivities
}
$(this).val('Please wait...');
$.ajax({
url: '/ProjectComponent/SaveComponent',
type: "POST",
data: JSON.stringify(data),
dataType: "JSON",
contentType: "application/json",
success: function (d) {
//check is successfully save to database
if (d.status == true) {
//will send status from server side
alert('Successfully done.');
//clear form
componentActivities = [];
//$('#project_id').val('');
$('#title').val('');
$('#componentActivities').empty();
}
else {
alert('Failed');
}
$('#submit').val('Save');
},
error: function () {
alert('Error. Please try again.');
$('#submit').val('Save');
}
});
}
});
我的方法
[HttpPost]
public JsonResult SaveComponent(OrderVM O)
{
bool status = false;
if (ModelState.IsValid)
{
using (Entities db = new Entities())
{
ProjComponent ProjComponent = new ProjComponent { project_id = O.project_id, title = O.title, description = O.description };
foreach (var i in O.ProjComponentActivities)
{
ProjComponent.ProjComponentActivity.Add(i);
}
db.ProjComponents.Add(ProjComponent);
db.SaveChanges();
status = true;
}
}
else
{
status = false;
}
return new JsonResult { Data = new { status = status } };
}
你可以试试
project\u id=
但是请注意,只有当您的Js在视图中时,它才起作用。
否则,您可以将其存储在ViewBag或某个javascript对象中…如果您只想获取projectId参数,只需将以下代码附加到javascript代码中即可:
@Request.RequestContext.RouteData.Values["YOUR PROJECT ID PARAM"]
您将使用URL中正确的参数名称替换参数名称,例如:URL路由中配置的id
另一种方法是使用同一行代码填充隐藏字段值,然后直接在JavaScript方法中使用此值我在方法中添加了methode code我需要从URL发布项目id值。MyMethod====public JsonResult SaveComponent(OrderVM O)我将数据发布到此方法,实际上,方法MyMethod不存在,我以该URL为例。如何将其附加到内部,而不是项目id-->var data={//project id:$('.'项目id').val().trim(),title:$('.'标题').val().trim(),description:$('.'描述').val().trim(),ProjComponentActivities:componentActivities}project_id=“@Request.RequestContext.RouteData.Values[“您的项目id参数”]”;