2017-12-26 13 views
0

View에서 int 값을 전달하려고합니다. 나중에 int 값을 기반으로 다른 함수를 호출합니다. 내가 부르는 클래스는 GetLogs(int x);이라는 기능을 가진 DataFetch.cs입니다.Html.ActionLink에 클래스를 추가하는 방법

보기에있는 것은 다음과 같습니다. 분명 내가 원하는 것이 아니다

http://localhost:xxx/DataFetch/GetLogs()/1 

:

@Html.ActionLink("Connect", 
      "GetLogs()", "DataFetch", new {id = item.MacNum}, new { @class = "DataFetch" }) 

는 ^이 나에게 URL을 제공합니다.

업데이트 :

function GetCloud() 
    { 
     console.log("insidefunc"); 
     $.ajax({ 
      type: "POST", 
      url: '/DataFetch/GetLogs?id=' + 1, 

      data: 1, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (response) { 
       alert("done") 
      }, 
      failure: function (response) { 
       alert("Failed: " + response.responseText); 
      }, 
      error: function (response) { 
       alert("Error: " + response.responseText); 
      } 
     }); 
    } 

이 중 하나가 작동하지 않았다.

+1

도움이 될 것입니다이

public ActionResult GetMyLogs(int id){ DataFetch Object_DataFetch = new DataFetch(); ObjectMyClass.GetLogs(1); .... .... return ""; } 

희망 같은 클래스의 객체를 (사용자가 액세스 할) 작성해야합니다 너무 필요 무엇이 요구되는지 명확히하기위한 많은 질문. [ask]를 읽은 다음 문제를 재현하는 데 사용할 수있는 [mcve]를 제공하면 무엇이 요청되는지 더 잘 이해할 수 있습니다. – Nkosi

+0

@Nkosi HtmlActionLink는 int 매개 변수를 사용하여 함수가있는 클래스를 호출합니다. 어떻게 명확하지 않습니까? –

+0

원하는 URL을 제공하지 않았습니다. 너 기본적으로 보여 줬어. 이것이 내가 가진 것입니다. 이것은 나에게 준 것이지만 나는 그것을 원하지 않습니다. – Nkosi

답변

1

Yes (예) :

Jquery ajax tutorial

Call a method with jquery ajax

이 당신에게 시작하기에 충분한 정보를 줄 것이다 : 아약스 라우팅 및 통화에 대한 자세한 내용을 보려면하기 위해

@Html.ActionLink("ClickMe", // link text 
        "Index", // action name 
        "Home", // controller 
        new { id = 2131 }, // (optional) route values 
        new { @class = "someClass" }) // html attributes 

이를 사용합니다.

+0

이것은 내가 요청한 것이 아닙니다. 나는 이것을 여기에서 이미 보았습니다 : https://stackoverflow.com/questions/5907530/can-i-add-a-class-to-an-html-actionlink-in-mvc3 –

+0

정확히 당신이 물었습니다 : "int 값입니다. 내가 호출하는 클래스는 GetLogs라는 함수가있는 DataFetch.cs입니다. "클래스는 컨트롤러입니다. 이 방법이 동작입니다. @ Html.ActionLink에서는 컨트롤러가 아닌 클래스 및 액션이 아닌 클래스를 호출 할 수 없습니다. 당신은 아약스를 사용해야 할 것입니다. 메소드 정의를보십시오. –

+0

이것은 view - model에서 - cotroller 또는 view - to action 메소드로 값을 전달하는 구문입니다. 메소드에서는 지정하지 않고 url에서는 get 요청을 발행합니다. 이와 같은 질문을하기 전에 라우팅에 대해 자세히 읽어보십시오. –

1

바로이 기능으로 바로 이동할 수 있습니다! 이것은 또한 당신이 내 대답을 투표하지 않는 다른 어떤 일을하려는 경우 앵커 태그를

<a href="@Url.Action("GetLogs","DataFetch",new { id = item.MacNum})"> Connect</a> 

을 만들어야이 사용하는 그 기능

" @Url.Action("GetLogs","DataFetch",new { id = item.MacNum}) " 

에 필요한 매개 변수 값을 제공 할 것입니다 ! 단지 제가이 잘

+0

@ Html.ActionLink는 앵커 태그입니다! 이것은 url.action과 html.ActionLink의 차이점입니다! 행동은 동일합니다! –

+0

하지만 DataFetch 클래스에서 GetLogs 함수를 호출하면 int 값이 제공됩니다! 정확히 당신이 원하는 것 –

+0

마찬가지로 Html.ActionLink! 그러나 ActionLink는 그것을 수행 할 것이기 때문에 앵커 태그를 만들 필요가 없습니다. 그의 코드는 훌륭하지만, 라우팅이 어떻게 작동하는지 이해하지 못합니다. 의미, 이것은 전혀 코드 문제가 아닙니다! –

0
@Html.ActionLink("Click Here", // link text 
        "GetMyLogs", // you action name 
        "Home", // you controller name 
        new { id = 1 }, // (optional) route values 
        new { @class = "someClass" }) 

이, 내가 제안 당신이 위의 ActionLink의 클릭에,해야 할 것을 할 것입니다 의견에 알려 당신이해야 고토 콘트롤에서 어떤 행동 (액션) (컨트롤러) 그 행동에, 당신은 불완전로이 현재 상태의 문제는 명확하지 않다