-1

私は MVC が初めてで、別のページにリダイレクトせずにコントローラーでコードを実行する方法を知りたいです。

私の見解:

 <a href="@Url.Action("DoSomething", "MyController",  new {  })">

私のコントローラー:

public void DoSomething()
{
   ...
}

クリックするとコードが実行されますが、空白のビューにリダイレクトされます。どうすればこれを回避できますか?

4

1 に答える 1

1

AJAX リクエストを介してアクションを呼び出すことができます。このようなもの:

<a id="doSomething" href="#">click here</a>

また、JavaScript コードでは (デフォルトで MVC プロジェクトで利用できるはずなので、jQuery を使用します):

$('#doSomething').click(function () {
    $.get('@Url.Action("DoSomething", "MyController",  new {  })', function(response) {
        // do something with the response?
    });
    return false;
});

これにより、ページからアクションへの非同期呼び出しが行われます。アクションからの応答はresponse、JavaScript のコールバック関数の値になります。

編集:このリンクは実際にはリンクではないため、そもそもアンカー タグではないこともお勧めします。このタグを上記の JavaScript コードと組み合わせると、同じ機能が得られます。

<span id="doSomething">click here</span>

CSS でリンクのように動作するようにスタイルを設定できます。

#doSomething {
    cursor: pointer;
    text-decoration: underline;
}

または、CSS はリンクに対して動作します。

于 2013-09-13T17:48:58.137 に答える