标签: asp.net-mvc-5

ASP.Net Identity定制UserProfile

我正在用EF写一个MVC5应用程序.我在第一次注册用户时在我的数据库中创建ASPNETUser表的项目中添加了ASP.NET Identity.但是现在,当我尝试自定义UserProfile时(如本文所列:http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook- and-google-oauth2-and-openid-sign-on)

我得到以下内容:

The model backing the 'ApplicationDbContext' context has changed since the database was created. Consider using Code First Migrations to update the database
Run Code Online (Sandbox Code Playgroud)

是因为我已经指定了.edmx文件(MVC5Entities)=>(参见web.config中的2个连接字符串)?

这是我的web.config:

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=DILS-S1301;Initial Catalog=MVC5;Integrated Security=True" providerName="System.Data.SqlClient" />
  <add name="MVC5Entities" connectionString="metadata=res://*/Models.Mvc5Model.csdl|res://*/Models.Mvc5Model.ssdl|res://*/Models.Mvc5Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

asp.net-mvc entity-framework asp.net-mvc-5 asp.net-identity

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

CSHTML文件中的lambda表达式的运行时编译器问题

cshtml在C#ASP.NET MVC5项目中有两个视图.这些视图处理用户配置文件和公司配置文件.

我正在为字段编辑,以便用户可以填写他们的个人资料.

在用户配置文件视图中,编辑器中的lambda表达式无法在浏览器中编译.用户视图的相关部分:

@model Project.Models.UserProfileViewModel

@{
    ViewBag.Title = "User Profile";
}
<h2>User Profile</h2>

@using (Html.BeginForm( "UserProfile", "Profile", FormMethod.Post, new { enctype = "multipart/form-data" } ))
{
    <div>
        @Html.LabelFor( model -> model.Salutation )
        @Html.EditorFor( model -> model.Salutation )
    </div>
}
Run Code Online (Sandbox Code Playgroud)

和公司视图的匹配部分:

@model Project.Models.CompanyProfileViewModel

@{
    ViewBag.Title = "Step 2:  Company Profile";
}
<h2>Company Profile</h2>

@using (Html.BeginForm( "CompanyProfile", "Profile", FormMethod.Post, new { enctype = "multipart/form-data" } ))
{
    <div>
        @Html.LabelFor(model => model.CompanyName)
        @Html.EditorFor(model => model.CompanyName)
    </div>
}
Run Code Online (Sandbox Code Playgroud)

用户视图错误是:

'/'应用程序中的服务器错误.

编译错误 …

c# razor visual-studio-2012 asp.net-mvc-5

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

如何在Visual Studio 2013 Express for Web中设置某些内容,以便在调试模式下运行它可以打开主页?

运行Razor,MVC5,.Net 4.5.1.我不知道在visual studio开发环境中MVC中的"起始页"是什么构成的.如何设置它以便每次运行F5时我的主页都会打开?

visual-studio-2013 asp.net-mvc-5

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

SignalR 2.0 CORS Chrome禁用Web安全性奇怪的行为

我正在努力让CORS与SignalR 2.0.0一起工作 - 我知道有很多关于它的SO帖子,我一直在仔细研究它们.

我在Chrome中使用已禁用的网络安全功能进行测试时遇到了一个问题,希望有人可以解释.

我有两个独立的MVC5站点(单独的解决方案)在IIS Express(不同的端口)上运行.其中一个是主机服务器,它安装了SignalR.该Startup.cs主机看起来是这样的:

public void Configuration(IAppBuilder app)
        {
            app.Map("/signalr", map =>
            {
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                {
                   // EnableJSONP = true                    
                   // EnableDetailedErrors = true                                     
                };
                map.RunSignalR(hubConfiguration);
            });
        }
Run Code Online (Sandbox Code Playgroud)

我只用一个方法在主机上有一个集线器.另一个MVC5站点是客户端,它具有以下JavaScript:

  • jQuery的1.10.2.min.js
  • jquery.signalR-2.0.0.min.js
  • 主机 MVC站点上对〜/ signalr/hubs JavaScript的引用

它调用的JS是以下(非常标准):

$.connection.hub.logging = true;
var chat = $.connection.chatHub;

    chat.client.broadcastMessage = function (name, message) {
        var encodedName = $('<div />').text(name).html();
        var encodedMsg = $('<div />').text(message).html();
        $('#discussion').append('<li><strong>' + encodedName
            + '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
    };
    $('#displayname').val(prompt('Enter your …
Run Code Online (Sandbox Code Playgroud)

c# cors signalr signalr.client asp.net-mvc-5

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

WebApi 2身份验证和ASP.NET MVC 5应用程序

我是ASP.NET MVC 5和WebAPI 2技术的新手.我目前正在为我的学校开发一个项目.该项目将用于计算机或移动设备.

我有一个像这样的Visual Studio解决方案:

  • 项目"Web.Front" - ASP.NET MVC 5 - 用于描述项目的前端网站
  • 项目"Web.Management" - ASP.NET MVC 5 - 核心Web应用程序
  • 项目"WebApi" - 具有个人帐户身份验证的WebAPI 2项目
  • 一个项目"模型" - 类库 - 包含我的Code Code的POCO类
  • 项目"数据库" - 类库 - 包含我的DbContext和迁移类

我很难理解如何管理这个项目中的用户.

我可以创建我的用户数据库,并通过Fiddler在我的数据库中进行身份验证和创建/管理用户.

现在我想在我的项目"Web.Management"中访问我的控制器中的用户.

在创建它时,我选择"个人帐户"进行身份验证,因此visual studio会自动生成AccountController控制器.

我想更改这些方法直接查询我的WebAPI.

1)您认为我的解决方案的架构是否正确?2)你能告诉我如何更改我的控制器"AccountController"来通过WebAPI管理用户吗?

问候 !

c# asp.net-mvc .net-4.5 asp.net-web-api asp.net-mvc-5

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

我在本地计算机上运行或调试MVC应用程序时的空白页面

我在MVC 5应用程序中工作,一切运行良好.但是在编辑和更新之后,当我尝试在本地计算机上运行或调试它时,我得到一个空白页面.

如果我在本地IIS或IIS Express或VS开发服务器下工作,则会返回空白页面.

请求的响应头是 503 Service Unavailable

asp.net asp.net-mvc-5

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

视图加载后是否可以在控制器中调用操作?

我正在试图找出当我的视图加载并呈现给用户时如何在我的控制器中调用方法.我已经尝试过了OnResultExecuted,OnActionExecuted但这似乎没有办法.

protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
    ConnectToDataSources();
    base.OnResultExecuted(filterContext);
}
Run Code Online (Sandbox Code Playgroud)

ConnectToDataSources方法在远程服务器上建立连接wcf服务,该服务器使用SqlDependency来触发实时更新.客户端我每次有变化时都使用SignalR来更新视图.如果没有数据的"实时流",服务将返回数据库中的最后一个值.我的问题是它似乎发生得太快,以至于我的值没有正确设置.

如果我尝试使用具有一秒延迟的计时器来愚蠢,则会显示值.但是,这不是一个稳定的解决方案,所以就像我说的那样,我试图弄清楚如何在触发ConnectToDataSources方法之前等待视图完全加载.

public void ConnectToDataSources()
{
    foreach (UnitDetailsModel unit in Model.UnitDetails)
    {
        var ods = new OperationDataSource();
        var ads = new ActivityStatusDataSource();

        ads.Start(unit.UnitId, ActivityReceived, AliveReceived);
        ods.Start(DataReceived, unit.UnitId);
        _dataSources.Add(ods);
        _activityStatusDataSources.Add(ads);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc wcf asp.net-mvc-5

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

MVC5和Ninject:无参数构造函数错误

在MVC 5中,我们得到了这样的帐户控制器.

public class AccountController : Controller
        {

            public AccountController()
                : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DatePickerDbContext())))
            {

            }

            public AccountController(UserManager<ApplicationUser> userManager)
            {
                UserManager = userManager;
            }
        }
Run Code Online (Sandbox Code Playgroud)

我安装了Ninject来处理我的依赖注入.我有两个存储库,我想在我的AccountController中使用,现在代码看起来像这样

    public class AccountController : Controller
    {
              private readonly ILicenserepository _licenserepository;
              private readonly IUserRepository _userRepository;    

        public AccountController(ILicenserepository licenserepository, IUserRepository userRepository)
            : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DatePickerDbContext())))
        {
            _licenserepository = licenserepository;
            _userRepository = userRepository;
        }

        public AccountController(UserManager<ApplicationUser> userManager)
        {
            UserManager = userManager;
        }
    }
Run Code Online (Sandbox Code Playgroud)

在ninject.web.common中,这就是我所做的

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind(typeof (ILicenserepository)).To(typeof (Licenserepository));
    kernel.Bind(typeof (IUserRepository)).To(typeof …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection ninject asp.net-mvc-5

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

将ApplicationDbContext和DataContext合并到单个上下文中

我在合并这两个上下文时遇到了问题.

我从IdentityModels.cs中删除了这行代码:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我在DataContext.cs中实现了这个

  public class DataContext : DbContext
{
    public DataContext()
        : base("name=DefaultConnection")
    {
    }

    // Account tables
    public DbSet ApplicationUsers { get; set; }
    public DbSet Roles { get; set; }
    public DbSet Tokens { get; set; }
    public DbSet UserClaims { get; set; }
    public DbSet UserLogins { get; set; }
    public DbSet UserManagements { get; set; }
    public DbSet UserRoles { get; set; } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-5

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

单击有/无回发的MVC调用方法

我有一个关于来自视图的调用方法的问题.

基本上我的观点我有2个链接:

1链接:当我点击它时,应该调用并执行一些方法,但是网页上什么都不应该改变,所以没有回发.

2链接:当我点击它时,某些方法应该发生并且可以在同一页面上进行回发

在控制器我有:

public ActionResult FirstMethod(){ return View();}
public ActionResult SecondMethod(){ return View();}
Run Code Online (Sandbox Code Playgroud)

在视图中:

@Html.ActionLink("Action 1", "FirstMethod", "Controller");
@Html.ActionLink("Action 2", "SecondMethod", "Controller");
Run Code Online (Sandbox Code Playgroud)

所以,当我点击这两个动作发生但后来我得到一个错误说找不到FirstMethod.chtml ..

那么这可能有一种方法有回发而另一种方法没有?以及如何返回同一页面...而不是尝试获取FirstMethod.chtml ..

c# asp.net-mvc postback actionlink asp.net-mvc-5

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