小编Vli*_*nce的帖子

添加View Model类下拉列表不显示我的类

我已经创建了一个新的C#asp.net mvc 4.0(beta)Internet应用程序,我在Visual Studio 2010(sp1)的"添加视图"对话框中有一些奇怪的行为.当我决定创建强类型视图时,在"添加视图"对话框中,"模型"类下拉列表不会显示我的ViewModel类.

为了记录,是的,我在触发Add View对话框之前编译了应用程序.

我相信我已经确定了问题,但不知道如何解决它.如果有人关心重现行为,下面是重复步骤:

  1. 在Visual Studio 2010(sp1)中,创建一个新的C#asp.net MVC 4.0(beta)Internet应用程序.
  2. 在Models文件夹中,创建一个名为"GazouViewModel.cs"的新简单类
  3. 构建应用程序,打开HomeController,右键单击Index()ActionResult并选择Add View ...
  4. 在Add View对话框中,选中"强类型视图"复选框,在Model类:下拉列表中,您会注意到您的"GazouViewModel"

  1. 在解决方案资源管理器中,右键单击您的项目并选择"管理NuGet包"
  2. 搜索,查找并安装"Bootstrapper.Autofac"软件包.
  3. 重建应用程序并验证"GazouViewModel"是否仍显示在"添加视图"下拉列表对话框中.
  4. "GazouViewModel"仍应显示在下拉列表中.

  1. 在解决方案资源管理器中,右键单击您的项目并选择"管理NuGet包"
  2. 搜索,查找并安装"Autofac ASP.NET MVC4(Beta)集成"软件包.
  3. 重建应用程序并验证"GazouViewModel"是否仍显示在"添加视图"下拉列表对话框中.
  4. "GazouViewModel"仍应显示在下拉列表中.

  1. 在解决方案资源管理器中,右键单击您的项目,并在无关紧要的任何位置添加新类(Class1.cs).
  2. 使Class1实现IAutofacRegistration并实现接口.
  3. 重建应用程序并验证"GazouViewModel"是否仍显示在"添加视图"下拉列表对话框中.
  4. "GazouViewModel"不再显示在Model类下拉列表中.

看来,只要我创建一个实现IAutofacRegistration接口并构建应用程序的类,我就不再能够在该下拉列表中查看我的ViewModel.

任何人都可以确认他们是否得到与我相同的结果?更重要的是,如何解决这个问题呢?

重要提示:我已尝试使用mvc 3.0应用程序执行完全相同的步骤,并且会发生完全相同的行为...因此,这与BETA版本无关.

真诚的文斯

asp.net-mvc visual-studio-2010

22
推荐指数
3
解决办法
2万
查看次数

asp.net mvc多语言网址/路由

这是关于asp.net mvc多语言网址/路由和SEO最佳实践/好处的两部分问题...

问题第1部分)

我被要求创建一个新的ASP.NET MVC网站,它将支持最少(最初)两种语言(英语和法语),将来可能会有3种语言...

至于本地化应用程序(标签,jQuery错误等),使用资源文件应该没问题,我已经找到了很多这方面的例子......但我的关注/问题更多的是关于URL.

在SEO方面,这两种方式之间的推荐方法是什么?

Fashion 1 (no culture folder)  
www.mydomain.com/create-account 
www.mydomain.com/creer-un-compte

Fashion 2 (with built in culture folder)
www.mydomain.com/create-account 
www.mydomain.com/fr/creer-un-compte <--notice the “fr” folder 
Run Code Online (Sandbox Code Playgroud)

使用一个而不是另一个已知的问题/惩罚?

或者它是如此之小,以至于变得无关紧要!


问题第2部分)

为了实现Fashion 2,我已经在这里找到了一篇文章: ASP.NET MVC - 本地化路线

但我很想知道如何实现时尚1.

有没有人有任何链接?

另外,据我所知,URL重写不是我想要的,因为我不想"重定向"用户...我只是希望用适当的语言显示网址,而不必在网址

在此先感谢您的帮助!

asp.net-mvc asp.net-mvc-routing

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

MVC 5.0 [AllowAnonymous]和新的IAuthenticationFilter

当我创建一个新的asp.net mvc 4.0应用程序时,我做第一件事就是创建并设置一个自定义授权,global filter如下所示:

//FilterConfig.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
 //filters.Add(new HandleErrorAttribute());
 filters.Add(new CustomAuthorizationAttribute());
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了CustomAuthorizationAttribute这样的:

//CustomAuthorizationAttribute.cs
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.IsAjaxRequest())  
        {
            //Handle AJAX requests
            filterContext.HttpContext.Response.StatusCode = 403;
            filterContext.Result = new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        else
        {
            //Handle regular requests
            base.HandleUnauthorizedRequest(filterContext); //let FormsAuthentication make the redirect based on the loginUrl defined in the web.config (if any)
        }
    }
Run Code Online (Sandbox Code Playgroud)

我有两个控制器:HomeControllerSecureController

HomeController使用[AllowAnonymous] …

c# asp.net-mvc-5

16
推荐指数
3
解决办法
2万
查看次数

包管理器控制台 - 更新特定项目

有关Package Manager控制台和"Update Package"命令的快速问题.

我目前有一个托管两个MVC 4.0项目的解决方案(其中一个是Set as Startup Project).

当我打开时Package Manager Console,我选择了我想要更新的项目Default project dropdown,然后,我启动" Update-Package"命令.

令我惊讶的是," Update-Package"命令没有考虑我在内部选择的项目Default project dropdown,而是更新了我的MVC 4.0项目.

解决方法是在"Update-Package"命令中手动指定我的项目名称,如下所示: Update-Package -ProjectName Kobo.Portal.Web

出于好奇,有谁知道为什么Update-Package命令没有考虑默认项目下拉列表中的选定/目标项目?

这是一个已知的问题?这是设计的吗?如果软件包管理器控制台不考虑它,那么必须选择默认项目的目的是什么?

也许我对包管理器控制台的理解是错误的:-(

提前感谢任何对此有所了解的人.

真诚的文斯

nuget visual-studio-2012

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

global.json和src文件夹有多重要?

在VS 2015中,使用此方法创建新的MVC 6.0应用程序时:

File-->New-->Project-->ASP.NET Web Application-->ASP.NET 5 Preview Templates
Run Code Online (Sandbox Code Playgroud)

您最终在磁盘上具有以下文件结构:

  • 文物
  • SRC
  • MyProject.sln
  • global.json

相反,如果我决定首先创建一个空白解决方案:

 File-->New-->Project-->Other Project Types-->Visual Studio Solutions-->Blank Solution
Run Code Online (Sandbox Code Playgroud)

并开始向此解决方案添加新的ASP.NET Web应用程序项目; 你最终具有的文件结构没有一个global.json文件,没有src文件夹.

根据文档,global.json文件用于整体配置解决方案.它默认只包含两个部分,项目和sdk.

projects属性指定哪些文件夹包含解决方案的源代码.默认情况下,项目结构将源文件放在src文件夹中,允许将构建工件放置在同级文件夹中,从而更容易从源代码控制中排除这些内容.

sdk属性指定Visual Studio在打开解决方案时将使用的DNX(.Net Execution Environment)版本.它设置在这里,而不是在project.json中,以避免解决方案中的不同项目针对不同版本的SDK的情况.

问题1)

如上所述,如果我选择首先创建一个空白解决方案,我将没有global.json文件.

没有global.json文件影响应用程序的任何形状或形式的行为?例如,当我部署或与构建工件交互时?

问题2)

如果确实有影响,那么我应该手动创建此global.json文件吗?

问题3)

在撰写本文时,是否有建议的方法在ASP.NET 5中创建多层应用程序?

我应该首先创建MVC项目并开始向项目添加类库吗?

要么

我应该首先创建一个空白解决方案,然后开始将类库和Web应用程序添加到解决方案中(知道我没有global.json文件也没有src文件夹)?

asp.net-core-mvc

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

使用Smtp.mail.microsoftonline.com发送电子邮件

上下文:

我们是一家没有Exchange Server(或任何致力于它的人)的小公司,但我们仍然需要/发送电子邮件.

我们决定使用Microsoft Online Services(MOS)


目标:

我们有一个Web服务器(带有IIS 6.0的Windows Server 2003 R2)并部署了一个C#ASP.Net MCV应用程序.

每次用户创建帐户时,Web应用程序都需要发送电子邮件.

根据文档,我们需要使用端口(587)并确保启用传输层安全性(TLS).此外,正在使用的FROM地址必须是"权威"类型,当我通过Microsoft Online Administration Center仔细检查时


代码:

我所拥有的C#代码应该是微不足道的,如下:

SmtpClient server = new SmtpClient("Smtp.mail.microsoftonline.com");
server.Port = 587;
server.EnableSsl = true;
server.Credentials = new System.Net.NetworkCredential("xxx@domain.com", "123abc");
server.UseDefaultCredentials = false;

MailMessage mail = new MailMessage();
mail.From = new MailAddress("xxx@domain.com");
mail.To.Add("johndoe@domain.com");
mail.Subject = "test subject";
mail.Body = "this is my message body";
mail.IsBodyHtml = true;

try
{
    server.Send(mail);
}
catch (Exception ex)
{
    throw ex;
}
Run Code Online (Sandbox Code Playgroud)

错误: …

c# email

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

POCO使用新的ASP.NET Identity和MVC 5.0 +基于声明的身份

有了新版本的VS 2013 RTM和asp.net mvc 5.0,我决定试一下......

不用说,很多都改变了.例如,new ASP.NET Identity是旧的Membership和(较旧的)SimpleMembershipAPI 的替代品.

在我之前构建的所有应用程序中,我从未有机会使用Membership或SimpleMembership.我总是最终创建自己的Login()方法,将提交的ViewModel转换为POCO(使用automapper),然后使用某种存储库来查找用户和密码.

作为回报,我将获得一个用户POCO,稍后将其转换(使用automapper)到较小的UserSession POCO.较小的UserSession将放在Session中.

当然,我仍然会在用户想要注销时使用它FormsAuthentication来创建Encrypted Ticket和使用FormsAuthentication.SignOut().

但我从未充分利用所Membership (or SimpleMembership)提供的优势.

我从来没有让我的POCO实现某种接口,也没有必要在我的POCO类库中添加对Microsoft库的引用.换句话说,我从未对任何事情有过强烈的依赖.

我的问题如下:

通过我看到的示例,我不断看到新的ASP.NET Identity(通过代码优先)创建了一些表和字段.例如,该AspNetUsers表将Id字段保存为string.当然,我确信有一种方法可以克服这个问题并最终看到例子,但为什么会有人NOT want to build pure POCO classes完全控制事物的创建和方式?

除非我感到困惑(很有可能),否则任何人都可以解释为什么我要使用新的ASP.NET Identity API(或者更重要的是,使用新的Microsoft.AspNet.Identity.EntityFramework)来创建我的表?

是什么Pros and Cons在想用这个,而不是事物的POCO风格?

也许我应该在另一个问题中提出这个问题,但我也试图了解在使用POCO而不是使用ASP.NET Identity生成的实体时,如何使新的基于声明的身份受益.

请随意指出正确的方向进行澄清.

identity claims-based-identity asp.net-mvc-5

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

MicrosoftMvcValidation.js VS jquery.validate.js(Bassistance)

在以前的MVC 2.0应用程序中,我(在我的Site.Master中)包含了对我jquery.validate.min.js所有客户端验证的CDN文件的引用.

我现在正在创建一个MVC 3.0项目,我对写的文章数量有点困惑 “how to use client-side validation using MicrosoftMvcValidation.js”.

在大多数(如果不是全部)文章中,当我看到对MicrosoftMvcValidation.jsI 的引用时,也会看到一个jquery.validate.js令人困惑的引用(考虑到,在过去,我只使用了bassistance的文件).

所以我的问题是:

  • 这两个文件有什么区别?
  • 使用其中一个是否有任何已知的问题/好处?
  • 在" Scripts"文件夹中,默认情况下,它看起来像两个文件,但为什么?他们是给我们选择还是他们携手合作?

任何有助于解释这一点的帮助都会很棒!

提前致谢!

asp.net-mvc

9
推荐指数
2
解决办法
3721
查看次数

了解新的Web API方法

我知道在开发MVC应用程序时并不是每个人都使用彻底的架构,但我们假设我有以下架构:

App.Core --> Class Library (POCO or Domain objects)
App.Data --> Class Library (Repository and Entity Framework)
App.Service --> Class Library (Service layer with all business logic)
App.Web --> asp.net MVC 3.0 project
Run Code Online (Sandbox Code Playgroud)
App.Data --> Has a reference to App.Core
App.Service --> Has a reference to App.Core and App.Data
App.Web --> Has a reference to App.Core and App.Service
Run Code Online (Sandbox Code Playgroud)

在我们的MVC应用程序中,我们尝试遵循这种方法:

  • 在我们的Controller内(在一个方法中),我们实例化一个ViewModel.
  • 我们从App.Service层填充ViewModel调用方法
  • 填充ViewModel后,我们将其返回到View(因此视图现在是强类型的).

这种情况发生率为99.9%.它很干净,我们喜欢它,它很好地利用它自己......等等!

现在我的问题如下:

如果我们决定将我们的应用程序移动到MVC 4.0并开始使用新的Web API方法,我不确定我是否完全理解它在当前架构中的适用位置(或如何)?

请记住,我们愿意改变这种状况!

我们应该创建一个位于App.Service和App.Web之间的新App.WebAPI层吗?这意味着在我们的控制器中,我们不再需要直接调用App.Service而是需要新的App.WebAPI层?

或者,将Web API保留在App.Web层内,并使控制器调用其他APIControllers,然后调用App.Service层?

不知道我在这里是否有任何意义......但请随意提出任何建议,因为我对不同的输入感到好奇.

谢谢

asp.net-mvc-4 asp.net-web-api

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

SQL Azure备份和还原策略

我们有一个基于Web(ASP.NET MVC)的应用程序,它将SQL Server 2008用于其数据库.

由于数据对我们(以及我们的客户)非常重要,因此我们制定了备份和还原策略,简而言之,该策略如下所示:

-Weekly: Full database backup
-Nightly: Differential backup
-Hourly: Log backup
Run Code Online (Sandbox Code Playgroud)

我们使用的策略受到金佰利Tripp网络直播的影响很大(可以在这里查看:https://msevents.microsoft.com/CUI/EventDetail.aspx?culture = en-US&EventId = 1032278589&CountryCode = US).

题:

由于我们正在考虑将数据库迁移到SQL Azure,我想知道是否有人在SQL Azure中实施了类似的备份和还原策略.

尝试使用Azure实施备份和还原策略是否有任何人遇到任何已知问题?

感谢您的帮助.

sql azure

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