如何设置单击“剃刀”页面的按钮?

时间:2019-08-26 07:21:53

标签: c# asp.net-core razor-pages

我的网页上有多个按钮,以下是cshtml中的示例:

home.cshtml

<Button runat="server" id="Search_Click" OnClick="btnLogin_Click" >try</Button>

及以下是 Home.cshtml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Web;
namespace WebApplication2.Pages
{
    public class IndexModel : PageModel
    {
        public void OnGet()
        { }
        public IActionResult btnLogin_Click(object sender, EventArgs e)
        { return Redirect("/Login");}
    }
}

但是这里的按钮根本不起作用,有人对此有想法吗?

1 个答案:

答案 0 :(得分:0)

Razor Pages不仅是Web窗体,因为两种技术都非常不同。的确,从文件组织的角度来看,您肯定可以看到一些相似之处。毕竟,在Razor页面和Web窗体中,我们都将重点放在其后带有某些代码的页面上。但是,他们实施实际网站的方式完全不同。

请明确说明,我不同意Web Forms是一项不良技术或设计不良的想法。就其时间而言,Web Forms在快速应用程序开发方面向前迈出了一大步。此外,其模型试图抽象出HTTP的所有细微差别,并提供与Windows窗体中以前非常相似的开发体验。

无论如何,Razor页面与ASP.NET Web窗体有很大的不同。首先,在Razor Pages中,没有任何HTTP抽象。实际上,您在这些页面模型文件中看到的不是HTML页面的“代码隐藏”,而是框架所调用的用于处理请求的HTTP-Verb特定的操作方法。您将看到诸如OnGetOnPost之类的方法,而不是Button_OnClickDropDownList1_OnSelect。就像MVC一样,您也可以访问完整的Request,Response和HttpContext对象,以帮助处理请求。另外,在WebFroms中的主要痛点:回发和ViewState,在任何地方都找不到。相反,一切都是无状态的,您可以100%控制服务器和客户端之间发生的消息传递。有关更多详细信息,请参见here

我建议您花一些时间来学习the official tutorial on Razor pages

相关问题