C# 在ASP.NET MVC2中使用普通HTML按钮调用控制器?

C# 在ASP.NET MVC2中使用普通HTML按钮调用控制器?,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,我想使用普通HTML按钮来调用ASP.NET MVC2中的控制器,而不是ActionLink,这可能吗?当然可以,只需使用Url.Action()将Url呈现给操作 <a href="<%= Url.Action("Action") %>">BLA BLA</a> 或 点击我 通常通过一个按钮,您可以使用javascript调用该操作,或者将其包装成一个表单(或者两者兼而有之) 去 $(函数(){ $(“按钮”)。单击(函数(){ 变量形式=$('fo

我想使用普通HTML按钮来调用ASP.NET MVC2中的控制器,而不是ActionLink,这可能吗?

当然可以,只需使用
Url.Action()
将Url呈现给操作

<a href="<%= Url.Action("Action") %>">BLA BLA</a>

点击我

通常通过一个按钮,您可以使用javascript调用该操作,或者将其包装成一个表单(或者两者兼而有之)


去
$(函数(){
$(“按钮”)。单击(函数(){
变量形式=$('form');
$.post(form.attr('action')、form.serialize()、function(msg){
警报(msg);
});
return false;//不要真正提交表单
});
});

点击我
您可能需要使用
助手方法来确定表单的
操作
URL


这不需要javascript就可以正常工作,但会得到您想要的外观。
按钮
标记的样式可以比
输入
类型的样式多一些,但这取决于您使用的现有样式。它们在功能上完全相同。

请不要将javascript嵌入标记中。这是一种不好的/难以维持的练习。另外请注意,如果javascript被关闭或者页面上有javascript错误,这将不起作用。我知道这一点,但只是作为一个示例演示。他说ActionLink(一个元素),但也提到了HTML按钮(一个按钮元素)。因此,为了完整性起见,我添加了这两个选项。您可以将表单的
方法
指定为
get
,然后为
submit
按钮指定
类型。那么你就根本不需要javascript了。@Garry——这只是一个演示的例子。我可能会用AJAX而不是javascript做一些验证或其他事情,但我想要一些简单的东西。不过,值得注意的是,有更好的方法来实现它。不过,我应该指定类型。如果没有javascript,IE可能无法正常响应。抢手货
<button onclick="javascript: window.location = '<%= Ajax.JavascriptEncode(Url.Action("Action")) %> '">Click me</button>
<% Html.BeginForm( "action", "controller", new { id = Model.ID } )
   { %>
     <button type="submit">Go</button>
<% } %>

<script type="text/javascript">
    $(function() {
         $('button').click( function() {
              var form = $('form');
              $.post( form.attr('action'), form.serialize(), function(msg) {
                    alert(msg);
              });
              return false; // don't really submit the form
         });
    });
</script>
<form method="get" action="YourUrl">
    <button type="submit">Click me</button>
    <input type="submit" value="Or click me" />
</form>