Asp.net mvc 4 如何在MVC中触发事件

Asp.net mvc 4 如何在MVC中触发事件,asp.net-mvc-4,Asp.net Mvc 4,我想在MVC4中执行按钮点击事件。我是MVC4新手,不知道在哪里编写事件、函数以及如何处理它们,包括模型、视图和控件 有没有人有同样的想法 如果有人能帮我详细解释和举例,我将不胜感激 提前谢谢 MVC4本质上是无状态的,因此与Web表单不同,没有“自动”方式将浏览器UI上的按钮点击连接到C代码 通常的处理方式是,当您单击按钮(例如,可能?)时,它会通过AJAX或标准浏览器重定向发出HTTP请求。该HTTP请求由控制器上的操作处理 假设你有一个控制器: public class MyControl

我想在MVC4中执行按钮点击事件。我是MVC4新手,不知道在哪里编写事件、函数以及如何处理它们,包括模型、视图和控件

有没有人有同样的想法

如果有人能帮我详细解释和举例,我将不胜感激


提前谢谢

MVC4本质上是无状态的,因此与Web表单不同,没有“自动”方式将浏览器UI上的按钮点击连接到C代码

通常的处理方式是,当您单击按钮(例如,
可能?)时,它会通过AJAX或标准浏览器重定向发出HTTP请求。该HTTP请求由控制器上的操作处理

假设你有一个控制器:

public class MyController : Controller {
    public string Foo() {
        return "Bar!";
    }
}
您可以像在Razor中那样连接标记和jQuery:

<button id="my-button">Call Foo!</button>
<script>
    jQuery(function ($) {
        $('#my-button').on('click', function () {
            $.ajax({
                url : '@Url.Action("Foo", "MyController")',
                type : 'GET'
            });
        });
    });
</script>
呼叫Foo!
jQuery(函数($){
$(“#我的按钮”)。在('click',函数(){
$.ajax({
url:'@url.Action(“Foo”,“MyController”),
键入:“获取”
});
});
});

这基本上是一个非常简单的要点。

我将从基础开始。您不需要jquery。。。了解asp.net MVC的工作原理

在控制器内定义两个同名的方法。使用HttpVerbs.Post定义的方法将是单击按钮(Post请求)时调用的方法

在按钮周围放置一个表单,指向您的方法,当您单击该按钮时,它将运行名为HttpVerbs.Post的方法

查看

<form action="Home/MyMethod" method="post">
    <input type="text" id="username" />
    <button text="Click me" />
</form>

控制器

public class HomeController : Controller
{
    public ActionResult MyMethod()
    {
        return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MyMethod(string username)
    {
        // notice the string username matches the <input id="username"...
        // alternatively you can pass a FormCollection to this method.
        return View();
    }
}
公共类HomeController:控制器
{
公共行动结果MyMethod()
{
返回视图();
}
[接受动词(HttpVerbs.Post)]
公共操作结果MyMethod(字符串用户名)
{

//请注意,字符串用户名与Please Visite教程匹配:我尝试了相同的方法,但我认为脚本没有运行。我在项目中使用母版页。这需要额外的东西吗?嗯,我发布的代码使用jQuery,所以您至少需要它。除此之外,不应该有任何其他内容。至于“母版页”,我假设您指的是布局。现在,我可以在替换为之后运行scrip,但ajax部分不起作用。我没有在公共字符串Foo()处获得调试点,也没有在成功时获得警报消息:函数(结果){alert(结果)}