我正在开发一个MVC Web应用程序,不知道我应该在哪里添加代码来处理按钮点击。我有一个由控制器呈现的cshtml视图。当显示视图时,我需要处理正在显示的几个按钮 - 例如打印,电子邮件等。我应该在哪里添加我的代码来处理这些按钮,你能给我一个如何实现它的例子吗?
<input id="save-button" type="submit" class="btn btn-primary" onclick="submitOrder();" value="Print Order" />
我需要处理submitOrder()调用。
答案 0 :(得分:2)
1.如果您的按钮未回复到表单,您可以像这样调用控制器:
<input type="button" value="Something" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
此方法有几个重载,有些重载接受更多参数。
2.如果您要回复表单并且输入按钮在该表单内,则输入按钮将回发给控制器。
默认mvc应用程序中的登录页面包含我上面提到的两个选项的示例。
以下是该页面的一部分:
<section id="loginForm">
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Use a local account to log in.</h4>
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.UserName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Password)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<div class="checkbox">
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Log in" class="btn btn-default" />
</div>
</div>
<p>
@Html.ActionLink("Register", "Register") if you don't have a local account.
</p>
}
</section>
您还可以使用JQuery Ajax调用控制器。但是,这有点复杂。