.net 按钮未在控制器类中执行正确的方法
我是.NETCore的新手,正在创建我的第一个小程序。在应用程序中,我单击一个按钮,它应该执行一个执行操作的方法。根据我在网上发现的情况,这样做应该相当简单。不幸的是,我的研究似乎遗漏了一些东西。按钮一直在调用错误的方法。一定有我丢失的餐具。我理解它的方式,我需要做的就是在asp控制器放置我想要使用的控制器之后,在asp操作放置方法之后。不幸的是,它总是调用启动时调用的方法.net 按钮未在控制器类中执行正确的方法,.net,asp.net-core,.net-core,.net,Asp.net Core,.net Core,我是.NETCore的新手,正在创建我的第一个小程序。在应用程序中,我单击一个按钮,它应该执行一个执行操作的方法。根据我在网上发现的情况,这样做应该相当简单。不幸的是,我的研究似乎遗漏了一些东西。按钮一直在调用错误的方法。一定有我丢失的餐具。我理解它的方式,我需要做的就是在asp控制器放置我想要使用的控制器之后,在asp操作放置方法之后。不幸的是,它总是调用启动时调用的方法 <form method="post"> <button asp-controller="Bro
<form method="post">
<button asp-controller="Brochure" asp-action="Recall">Click Me</button>
</form>
我要调用的方法:
public class BrochureController : Controller
{
[HttpPost]
public String Recall()
{
//Product product = repository.Products
//.FirstOrDefault(p => p.ProductID == productId);
//if (product != null)
//{
// cart.RemoveLine(product);
//}
return "Recall Test";
//return View("ReloadOrders");
}
启动:
public class Startup
{
public IConfiguration Configuration { get; set; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton<IMessageService, ConfigurationMessageService>();
services.AddSingleton(provider => Configuration);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IMessageService msg)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=BrochureMain}/{id?}");
});
app.Run(async (context) =>
{
await context.Response.WriteAsync(msg.GetMessage());
});
}
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
if (env.IsDevelopment())
Configuration = builder.Build();
}
}
asp控制器/asp操作属性位于窗体上,而不是按钮。asp控制器/asp操作属性位于窗体上,并使用按钮作为提交类型
<form method="post" asp-controller="Brochure" asp-action="Recall">
<button type="submit" >Click Me</button>
创业课程。我并不怀疑你,但我的观点似乎有所不同,也许我看错了文件?这只是.NETCore3.0的一个特性吗?不是,但这是formaction标记的帮助程序。它用于生成formaction属性,该属性应覆盖表单上的主操作,但无论出于何种原因,它似乎不适合您。不过,使用它的唯一原因是,如果您需要有多个提交按钮,并将每个按钮发送到不同的操作,这在一开始就不是一个很好的设计。在你的例子中,你只有一个,所以在表单标签上的操作更合适,这样也更简单。我不是OP,我只是想找出他们的问题:我甚至不知道那些标签会出现在按钮上!谢谢你的信息。克里斯,我在一张表格上有几个提交按钮。我把这个分离出来,这样我就可以玩它,并找出如何让它工作。你能告诉我为什么这是一个糟糕的设计和什么会更好?我正在努力不写糟糕的代码,所以我想知道最好的方法。
<form method="post" asp-controller="Brochure" asp-action="Recall">
<button type="submit" >Click Me</button>
app.Run(async (context) =>
{
await context.Response.WriteAsync(msg.GetMessage());
});