我的视图中有一个按钮:
<td>
<button id="btn" class="button btn-primary" type="button" onclick="location.href='@Url.Action("RunAll", new { id = @id })'"> Run Test</button>
<img id="loading" src="img/ajax-loader.gif" alt="" style="display:none;" />
</td>
在HomeController中调用哪个方法:
public IActionResult RunAll(int id) {
_service.RunAll(id);
var items = _service.GetAllTests<MyClass>();
return RedirectToAction("Index");
}
执行此方法后,我想重定向到同一页面(localhost:5000),但是当我运行我的应用程序时,在Windows上将Linux服务器URL更改为http://localhost:5000/Home/RunAllTests/374可以正常工作。有没有解决方法或解决方法?
答案 0 :(得分:0)
如果使用.net core,则可以在如下视图中轻松调用定位标记:
@model YourModel
<!DOCTYPE html>
<html>
<body>
<a asp-controller="Home"
asp-action="RunAll"
asp-route-id="@Model.Id">Run Test</a>
</body>
</html>
在控制器中,您的代码如下:
[Route("Home/{id:int}")]
public IActionResult RunAll(int id) {
_service.RunAll(id);
var items = _service.GetAllTests<MyClass>();
return RedirectToAction("Index");
}
在Startup.configure中,您可能具有默认路由:
app.UseMvc(routes =>
{
// default route
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});