C# &引用;txtUsername";及;txtPassword";控件在当前上下文错误中不存在

C# &引用;txtUsername";及;txtPassword";控件在当前上下文错误中不存在,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我有编写的代码,作为一个带有Codebehind文件的Web应用程序运行良好。然而,我并没有机会将我的文件转换为Web应用程序,因为客户希望实际的项目是MVC,所以转换文件不足以运行项目。 如果我不转换为应用程序,它将保持给定的错误,因为我的“txtUsername”和“txtPassword”在当前上下文中不存在 我只需要进行修改,使其与MVC逻辑一样工作 在Views/login.aspx下: <%@ Page Language="C#" AutoEventWireup="True"

我有编写的代码,作为一个带有Codebehind文件的Web应用程序运行良好。然而,我并没有机会将我的文件转换为Web应用程序,因为客户希望实际的项目是MVC,所以转换文件不足以运行项目。 如果我不转换为应用程序,它将保持给定的错误,因为我的“txtUsername”和“txtPassword”在当前上下文中不存在

我只需要进行修改,使其与MVC逻辑一样工作

在Views/login.aspx下:

<%@ Page Language="C#" AutoEventWireup="True" Inherits="login" Codebehind="/Controllers/login.cs" %>
using System;
using System.Web.Security;
using System.Web.UI;

public partial class login : Page
{
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        if (Membership.ValidateUser(txtUsername.Text, txtPassword.Text))
        {
            FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, false);
        }
    }
}

即使我使用System.Web.Mvc将login.cs更改为具有
公共部分类登录:ViewPage
。由于当前上下文中不存在“txtsername”和“txtPassword”,因此它仍然会给我错误。我有很多这样的Web表单,但如果有人能帮助我将login.aspx和login.cs从Web表单方法更改/移动到MVC方法,并使它们在没有警告的情况下正常工作,那将非常有帮助。

,你必须转换整个应用程序还是将MVC添加到现有的应用程序中?我不相信这会像你想象的那么简单。您需要重写大量代码。您需要大量阅读asp.net WebForms和MVCW之间的差异。客户为什么关心您使用的工具?他们是否也说您必须使用NHibernate而不是实体框架?客户是否明确表示“不要使用WebForms,使用MVC”,或者您是否将另一条指令解释为“不要使用WebForms,使用MVC?”@CodeCaster:当然我们知道,我们对此争论了很多。然而,一段时间后,他们将在这个项目中进行开发,正如你所说的,他们认为MVC可能不仅仅是一颗银弹。原因很简单,对于他们来说,使用MVC进行开发很容易,但是他们正在失去我们架构的好处,即使我们告诉他们不要使用MVC。因此,作为一个结论,我们没有机会将代码更改为MVC,这似乎占用了我们很多时间,可能需要整整一周的时间。