从.Net(mvc)

时间:2017-12-29 02:43:14

标签: c# asp.net-mvc asp.net-mvc-4

我刚刚开始在MVC编程,我想问一下从你的角度调用控制器方法的最佳方法。 为了更容易: 我有一个名为Song的模型,有2种方法可以启动和停止它:

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();
        }
    }

在控制器中我创建了歌曲对象,我有两个功能来启动和停止它。

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>

如何从视图按钮调用每个控制器操作的最正确方法?

非常感谢您的关注,感谢您的帮助

2 个答案:

答案 0 :(得分:5)

您可以使用设置href路径从controller拨打view

<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

您可以使用ajax调用控制器方法,也请参阅此link

答案 1 :(得分:1)

实现这一目标的一种非常简单的方法是使用Razor,如下所示:

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

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