2016-09-24 1 views
-1

ASP.NET MVC 컨트롤러의 URL에서 ID를 가져 와서 Project_ID에 삽입하고 싶습니다. 아래 코드는 내 코드이지만, 지금은 저에게 맞습니다.asp.net의 URL에서 ID를 가져 오는 방법 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은'SaveComponent'라는 메소드가 아니라'ProjectComponentController'의'Index()'메소드로 이동합니다. –

+2

파란색 바지를 입으면 내 차가 시작되지 않습니다. –

+0

친애하는 Stephen Muecke, 의견에 감사드립니다. 네 말이 맞습니다. 나는 그 실수를 저질 렀습니다. 그리고 나는 나의 문제를 명확하게 기술하지 않았다. 자세한 내용은 내 컨트롤러에있는 아약스를 통해 많은 데이터를 게시했습니다. 다른 테이블에 외래 키로 저장하는 데 필요한 project_id를 수락합니다. 그래서 내가 ASP.NET MVC보기에서 게시물 메서드를 사용하는 내 컨트롤러에서 ID를 얻을 수 있습니까 ?? – ZKF3340320

답변

0

당신은 항상 ..... 숨겨진 필드를 사용 JQuery와 /에 javscript하여 업데이트 및 아약스 도우미의 끝을 다시 보낼 수 있습니다

1.name이 ActionMethod param 및 3.Jquery, jQuery Validate 및 jQuery와 정확히 일치하는지 확인하십시오. 흔들리지 않는 Ajax가 올바르게로드되어야합니다.

My code .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

관련 문제