小编S9D*_*gns的帖子

MVC 3尝试将URL启动到View而不是控制器操作

有时当我启动我的MVC 3项目时,它会尝试为正在呈现的视图加载完全限定的URL,而不是控制器中的操作(这给了我404错误).其他时候它工作正常,实际上按照预期的方式击中控制器动作,但它大约是50/50.

它有时会点击的URL是: http://localhost:xxxx/Views/Account/LogOn.cshtml

以下是Global.asax文件中的默认路由设置:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } 
        );
Run Code Online (Sandbox Code Playgroud)

我也尝试从路由中删除/ {id}参数,因为我觉得登录屏幕不需要它.

有任何想法吗?目前,该项目设置非常简单,使用AccountController中的默认操作方法LogOn等.我唯一做的就是更改global.asax文件中的控制器和操作.

c# asp.net-mvc controller asp.net-mvc-routing

7
推荐指数
2
解决办法
1019
查看次数

MVC 3/EF存储库模式和正确的数据访问

作为MVC 3和EF的新手,我正在努力了解为我的公司开发应用程序的最佳架构方法.该应用程序将是一个大型应用程序,可能同时处理数百个用户,所以我想确保我理解并遵循正确的程序.到目前为止,我已经确定一个简单的存储库模式(例如Controller - > Repository - > EF)方法是最好和最容易实现的,但我不确定这是否是最好的做事方式.应用程序基本上会返回在devexpress网格中向用户显示的数据,并且可以修改此数据/添加到其中等.

我发现这篇文章,这对我来说相当混乱,所以我想知道是否有任何理由尝试使用断开连接的EF以及为什么你甚至想要这样做:http://www.codeproject .COM /用品/ 81543 /最后的实体框架-工作-在-全disconne?味精= 3717432#xx3717432xx

总结一下我的问题:

  • 代码是否可以接受?
  • 它应该适用于大规模的MVC应用吗?
  • 有没有更好的办法?
  • 与EF的不必要的SQL连接是否仍然打开?(即使在using语句退出后,SQL事件探查器也会让它保持打开状态)
  • 断开连接的框架理念是否更好?为什么你甚至想要这样做?我不相信我们需要跨层级跟踪数据......

注意:存储库实现IDisposable并具有下面列出的dispose方法.它在存储库构造函数中创建实体上下文的新实例.

用法示例:

控制器(使用自定义成员资格提供程序登录):

if (MembershipService.ValidateUser(model.UserName, model.Password))
{
    User newUser = new User();                    

    using (AccountRepository repo = new AccountRepository())
    {
         newUser = repo.GetUser(model.UserName);
         ...
    }
}
Run Code Online (Sandbox Code Playgroud)

成员资格提供者ValidateUser:

public override bool ValidateUser(string username, string password)
{
    using (AccountRepository repo = new AccountRepository())
    {
        try
        {
            if (string.IsNullOrEmpty(password.Trim()) || string.IsNullOrEmpty(username.Trim()))
                return false;

            string hash = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Trim(), "md5");

            bool exists = …
Run Code Online (Sandbox Code Playgroud)

sql asp.net-mvc repository disconnected-environment

1
推荐指数
1
解决办法
2648
查看次数