我尝试使用按钮在控制器Client
中调用两种操作方法之一。这是一个简单的CRUD样式的Web应用程序,但是根本没有调用任何操作方法(我设置了断点)。我的HTML代码如下:
@if (Model == null || Model.ID == 0)
{
<span class="input-group-btn"><button class="btn btn-default" onclick="location.href = ''@Url.Action("AddClient", "Client")''"/>Add New Details</span>
}
else
{
<span class="input-group-btn"><button class="btn btn-default" onclick="location.href = ''@Url.Action("UpdateClient", "Client")''"/>Update Client Details</span>
}
我不希望页面重新加载,而是希望在不使用jQuery的情况下完成此操作(如果可能的话)。
答案 0 :(得分:3)
您说您不想重新加载页面,但可能您希望在调用服务器后以某种方式更新页面。
而不是按钮我通常使用一个样式像按钮的链接:
@Ajax.ActionLink("Add New Details", "AddClient", "Client",
new { /*action params*/ },
new AjaxOptions()
{
Confirm = "Are you sure you want to add new details?",
HttpMethod = "POST",
OnComplete = "afterAddition()"
},
new { @class = "btn btn-default" }
)
答案 1 :(得分:0)
您在指定location.href的地方有额外的单引号,如下所示删除它们,它应该点击您的操作方法,
@if (Model == null || Model.ID == 0)
{
<span class="input-group-btn"><button class="btn btn-default" onclick="location.href = '@Url.Action("AddClient", "Client")'"/>Add New Details</span>
}
else
{
<span class="input-group-btn"><button class="btn btn-default" onclick="location.href = '@Url.Action("UpdateClient", "Client")'"/>Update Client Details</span>
}
如果您想要部分加载,可以使用MVC Ajax选项。