我想知道如何创建一个简单的按钮操作,在MVC 6核心web应用程序与引导。因此,例如,我可以执行sql存储过程,或者只是从服务器检索一个日期,或者根据请求从服务器代码中检索其他数据,并在文本框中显示它。特别是我喜欢知道最少的代码,没有花哨的装饰。
<asp:??? input type="button" runat="server" onclick="btn_Click" class="btn btn-default">
或者也许
<div>
<button type="button" class="btn btn-default" runat="server" onclick="btn_Click">
</div>
这也许是一个简单的问题,但我对如何在MVC-6,而不是在旧版本或asp页中应该如何做感到困惑。
发布于 2016-11-14 15:33:20
它不再被称为MVC 6。现在是ASP.NET Core1.0。Runat=“服务器”不用于ASP.NET Core1.0,因为它不支持web,而是依赖于ASP.NET模式。出于同样的原因,也没有onclick属性。
所以你的按钮看起来可能是:
<button type="submit" class="btn btn-default">Click Here</button>
控制器上的操作方法看起来可能如下:
[HttpPost]
public IActionResult Post() {
/*do work here*/
return View();
}
全例
在注释中,您要求提供一个示例,说明如果窗体上有多个按钮,则如何判断单击了哪个按钮。下面是一个示例:
/Views/example/index.cshtml
<html>
<body>
<form asp-controller="example" asp-action="Index">
<label>Value:</label><input name="someValue" type="text" maxlength="10" />
<button name="btnOne" type="submit" class="btn btn-default">Click One</button>
<button name="btnTwo" type="submit" class="btn btn-default">Click Two</button>
</form>
</body>
</html>
/Controllers/example/ExampleController.cs
using Microsoft.AspNetCore.Mvc;
namespace App.Web.Controllers {
public class ExampleController: Controller {
public ExampleController() {
}
[HttpGet]
[Route("/example/")]
public IActionResult Index() {
return View();
}
[HttpPost]
[Route("/example/")]
public IActionResult Index(string someValue) {
string buttonClicked = "";
if(HttpContext.Request.Form.ContainsKey("btnOne")) {
buttonClicked = "btnOne";
} else if(HttpContext.Request.Form.ContainsKey("btnTwo")) {
buttonClicked = "btnTwo";
}
return View("Index");
}
}
}
您可以在ASP.NET Core:https://learn.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms中了解更多有关表单的信息
与webforms相比,它们具有惊人的灵活性,但最初的学习曲线更陡峭一些。
https://stackoverflow.com/questions/40547822
复制相似问题