【发布时间】:2017-06-01 19:06:54
【问题描述】:
我的控制器上有一个 IActionResult,它通过 AJAX 返回一个局部视图:
[HttpGet]
[Route("/propertycoverages/loss")]
public IActionResult GetNewLoss()
{
return PartialView("_Loss");
}
如果我在 Razor 视图中添加<a> 标记,其中包含以下内容:
<a asp-controller="PropertyCoverages" asp-action="GetNewLoss" id="loss-btn" data-ajax="true" data-ajax-update="losses" data-ajax-success="addLoss" data-ajax-method="GET">Add</a>
在<a> 标签中生成以下 HTML 属性:href="/propertycoverages/loss"
它按预期工作,并在页面内返回部分视图。但是,如果我尝试使用按钮:
<button asp-controller="PropertyCoverages" asp-action="GetNewLoss" id="loss-btn" type="submit" data-ajax="true" data-ajax-update="losses" data-ajax-success="addLoss" data-ajax-method="GET">Add</button>
在<button> 标签中生成以下 HTML 属性:formaction="/propertycoverages/loss"
然后我被重定向到/propertycoverages/loss,这不是我想要的。 有没有办法让按钮的行为类似于<a> 标签?
注意:这些元素位于 <form> 中。我还尝试将<button> 从type="submit" 切换到type="button",但没有调用控制器操作。
【问题讨论】:
-
@AgamBanga 我尝试将按钮更改为 type="button" 但是当我单击按钮时没有任何反应。不会调用控制器操作。
-
为什么不给你的按钮再次点击附加一个JS方法。在JS方法中可以回调到AJAX调用成功方法中获取HTML并放置在页面上的动作吗?
-
@DerekHackett 这可能是我需要做的。谢谢。
-
@RyanBuening 让我知道这是否有效。如果是,我会将其添加为您选择的答案。
标签: asp.net asp.net-mvc razor asp.net-core