我正在使用 C# Razor 和所有很棒的东西编写一个 MVC4 应用程序。它具有完整的登录名和密码以及额外的 2 个问题,用户才能登录。
在几个月前我启用登录功能之前,这是一个梦想,我只是在我感兴趣的页面上启动应用程序,它会加载让我立即看到我的结果。
有时我会从错误的页面开始,上帝保佑我可能需要额外点击一两次才能到达正确的页面。我认为这已经够糟糕了。
现在我已经启用了登录,并且对代码进行了几次修改,它已经通过了测试部门,并进入了大坏世界。我不允许再次禁用它。
我的替代方法是对测试用户名和密码进行硬编码,并使用所需的其他默认值进行固定,然后在发布时将其删除。感谢上帝的测试......我实际上把它们硬编码了一次。这足以教会我永远不要再这样做了。
然而,我从字面上毫不夸张地开始我的应用程序,每天可能数百次(尽管感觉就像数千次),而且每次我都必须填写这个可怕的登录表单。这是非常低效的,真的占用了我很多时间。它积极鼓励我养成不良的编程习惯,即一次更改几件事然后进行测试。一条我不想开始的路。
我的问题:是否有替代这种硬编码实践的方法可以让我恢复工作效率?
请不要建议让浏览器记住细节。我试过了,问题是我的应用程序必须跨浏览器和平台兼容,这意味着它不仅必须在 Windows 浏览器(本身有足够的变化)中运行,而且还必须在平板电脑、手机甚至 lunix 和 mac 上运行。因此,依靠浏览器记住细节根本不是一种选择。
有什么建议么。
根据下面的建议,我决定探索 web/user.config 路线,这是我迄今为止的尝试,但没有奏效。
模型:
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
[StringLength(255, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 8)]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
[StringLength(255, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
public string Password { get; set; }
}
控制器:
public ActionResult Login()
{
LogOnModel model = new LogOnModel();
model.UserName = ConfigurationManager.AppSettings["UserName"];
model.Password = ConfigurationManager.AppSettings["Password"];
return View("Login");
}
[HttpPost]
public ActionResult Login(LogOnModel model, string returnUrl)
{
model.UserName = ConfigurationManager.AppSettings["UserName"];
model.Password = ConfigurationManager.AppSettings["Password"];
//I am aware that this will presently overwrite the incoming model if it exists.
//I am just trying to get something work here and I will surround it with an if afterward.
if (ModelState.IsValid)
{
... Other code here
}
... Other code here (there are a variety of returns this is a long method with lots of checks
}
看法:
@model YeatsClinical.PatientPortal.Web.Models.LogOnModel
...Lots of other code...
@Html.TextBoxFor(x=>x.UserName, new { @class = "m-wrap placeholder-no-fix", @placeholder="Username"})
...Lots of other code...
I didn't bother trying the password yet, I just wanted to get one thing working first.
网络配置:
<appSettings file="user.config">
用户配置
<appSettings>
<add key="UserName" value ="someone@somewhere.com"/>
<add key="Password" value ="password"/>
</appSettings>
不再有任何 web/user.config 错误或任何构建错误。它只是像以前一样加载带有占位符文本的格式良好的文本框。那么我哪里错了。再次感谢大家。