2016-09-24 83 views
-1

我想从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; 
     } 
    } 
} 
+1

你的方法是POST,而不是GET(您无法浏览到一个POST方法)。和URL导航到ProjectComponentController'的'了'指数()'方法,而不是一个名为'SaveComponent' –

+2

当我穿着蓝色的裤子我的车无法启动方法。 –

+0

亲爱的斯蒂芬·马克,感谢您的意见,是的,你是对的,我做了一个错误上。我没有清楚地描述我的问题。有关详细信息,我通过我的控制器中的ajax发布了许多数据,接受需要作为外键存储在其他表中的project_id。所以我怎么能在我的控制器中使用ASP.NET MVC中的View方法获取ID? – ZKF3340320

回答

0

您可以随时使用隐藏域和的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