2017-12-29 25 views
0

MVCでプログラミングを始めたばかりです。コントローラのメソッドをビューから呼び出す最良の方法について質問したいと思います。 私はそれを起動および停止するには2つの方法でソングと呼ばれるモデルがあります:コントローラで.Net(mvc)のビューボタンからコントローラメソッドを呼び出す最も簡単な方法

public class Song 
{ 
     WMPLib.WindowsMediaPlayer wplayer ; 

     public Song() { 
      wplayer = new WMPLib.WindowsMediaPlayer(); 
      wplayer.URL = "my song url"; 
      wplayer.controls.stop(); 
     } 
     public void Stop() { 
      wplayer.controls.stop(); 
     } 
     public void Start() { 
      wplayer.controls.play(); 
     } 
    } 

私は曲のオブジェクトを作成し、私はそれを起動および停止するために2つの機能を持っているが、それは容易にするために 。

public class DefaultController : Controller 
     { 
      // GET: Default 
      Song c = new Song(); 

      public ActionResult Index() 
      { 
       return View(c); 
      } 
      public void Start() { 
       c.Start();    
      } 
      public void Stop() { 
       c.Stop(); 
      } 
     } 

私は2つのボタンが各コントローラのアクションに対応しています。

<button type="button">Start</button> 
<button type="button">Stop</button> 

ビューアボタンから各コントローラアクションを呼び出す最も正しい方法を実行するにはどうすればよいですか?

はご注意いただき、誠にありがとうございます、私は以下に示すように、これを達成するための非常に単純な方法は、カミソリを使用することです

+1

を参照してください。また、ajaxを使用して、コントローラのメソッドを呼び出すことができます'Start()'と 'Stop()'はあなたがAJAXで呼び出すコントローラーアクションです。また、アクションが実行された後にSongインスタンスも失われるように、各要求が新しいコントローラインスタンスを作成することを忘れないでください。 – Jasen

答えて

3

あなたが呼び出すように設定hrefパスを使用することができますあなたのcontrollerviewです。

<a class="btn btn-success" href="@Url.Action("Start", "DefaultController")">Start</a> 

と場合は、パラメータを渡したい:

<a class="btn btn-success" href="@Url.Action("Start","DefaultController", new {id=Item.id })">Start</a> 

またはその他のオプションについては、あなたがこのlink

を確認することができますが、このlink

0

あなたの助けに感謝:

<button type="button" onclick="location.href='@Url.Action("Start", "DefaultController")'">Start</button> 

    <button type="button" onclick="location.href='@Url.Action("Stop", "DefaultController")'">Stop</button> 
関連する問題