如何从URL获得ID在asp.net MVC控制器
问题描述:
我想从URL中的ID在ASP.NET MVC控制器,并将其插入PROJECT_ID,波纹管是我的代码,我尝试,但它现在为我工作。如何从URL获得ID在asp.net MVC控制器
http://localhost:20487/ProjectComponent/Index/1
我的控制器
[HttpPost]
public JsonResult SaveComponent(OrderVM O, int id)
{
bool status = false;
if (ModelState.IsValid)
{
using (Entities db = new Entities())
{
ProjComponent ProjComponent = new ProjComponent { project_id = 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;
}
}
}
答
您可以随时使用隐藏域和的jQuery/javscript更新它,并将其发送到后端的AJAX辅助.....
确保1.name应准确命名为ActionMethod PARAM和3.Jquery,jQuery验证和jQuery unobstrusive AJAX是正确加载
我的代码.C SHTML
<script src="~/Scripts/jquery-2.1.4.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<div>
@{
AjaxOptions options = new AjaxOptions();
options.HttpMethod = "POST";
options.OnBegin = "OnBeginRequest";
options.OnSuccess = "OnSuccessRequest";
options.OnComplete = "OnCompleteRequest";
options.OnFailure = "OnFailureRequest";
// options.Confirm = "Do you want to Add Country ?";
options.UpdateTargetId = "divResponse";
options.InsertionMode = InsertionMode.InsertAfter;
}
@using (Ajax.BeginForm("AjaxSend", "Stackoverflow", options))
{
<input type="hidden" name="project_id" id="project_id" value="project_id" />
<input type="submit" value="Click me" />
}
</div>
<div id="divResponse">
</div>
<script>
$(function() {
var url = window.location.href;
var array = url.split('/');
var lastsegment = array[array.length - 1];
console.log(lastsegment);
$('#project_id').val(lastsegment);
});
function OnBeginRequest() {
console.log('On Begin');
}
function OnCompleteRequest() {
console.log('On Completed');
}
function OnSuccessRequest() {
console.log('On Success');
}
function OnFailureRequest() {
console.log('On Failure');
}
</script>
和控制器
[HttpPost]
public JsonResult AjaxSend(String project_id)
{
//rest goes here
return Json(new { Success = true });
}
这个链接可以帮助link
你的方法是POST,而不是GET(您无法浏览到一个POST方法)。和URL导航到ProjectComponentController'的'了'指数()'方法,而不是一个名为'SaveComponent' –
当我穿着蓝色的裤子我的车无法启动方法。 –
亲爱的斯蒂芬·马克,感谢您的意见,是的,你是对的,我做了一个错误上。我没有清楚地描述我的问题。有关详细信息,我通过我的控制器中的ajax发布了许多数据,接受需要作为外键存储在其他表中的project_id。所以我怎么能在我的控制器中使用ASP.NET MVC中的View方法获取ID? – ZKF3340320