2017-12-26 19 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を与えます。

UPDATE:

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

質問を助けることを願っていますが不明です何が求められているかを明確にするための多くの質問。 [質問]を読んで問題を再現するのに使うことができる[mcve]を入力し、何が尋ねられているのかをよく理解できるようにします。 – Nkosi

+0

@Nkosi HtmlActionLinkは、int型パラメータを持つ関数を持つクラスを呼び出しますが、これはどのように明確ではありませんか? –

+0

あなたは希望のURLを入力していません。あなたは基本的に示しました。これは私が持っているものです、これは私に与えられたものですが、私はそれを望んでいません。 – Nkosi

答えて

1

はい:

Jquery ajax tutorial

Call a method with jquery ajax

これはあなたで始まるのに十分な情報が得られます: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では、コントローラではないクラスやアクションではないメソッドを呼び出すことはできません。あなたはajaxを使用する必要があります。メソッドの定義を見てください。 –

+0

これは、ビューからモデルへの値をコッタローグまたはビューからアクションメソッドに渡すための構文です。メソッドではなく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

しかし、それはあなたの関数GetLogsをDataFetchクラスでコールし、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のをクリックするだけで、やっていることでしょうコメントで知らせておべき後藤contollerで何らかのアクション(あなたのアクション)(コントローラー)そのアクションで、あなたはクラスのオブジェクトを作成する必要があります(あなたがアクセスしたい)このような

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

それは不完全であり、あまりにも必要であろうと、これは現在の状態で

関連する問題