小编Jer*_*ose的帖子

来自默认文件夹以外的MVC模板(EditorTemplates/DisplayTemplates)?

你能否将MVC指向默认文件夹以外的文件夹(Views/Shared/EditorTemplates&Views/Shared/DisplayTemplates)?我想将它们放在子文件夹下面的子文件夹中,或者放在Shared文件夹之外的其他文件夹中.

例如,如果我在此文件夹下有一个编辑器模板:

〜\查看\订单\ ProductModel.cshtml

如何告诉我的EditorFor模板使用这个tempalte名称?

我试过完全限定它,但这不起作用:

@Html.EditorFor(m => m.ProductModel, @"~\Views\Order\ProductModel.cshtml")
Run Code Online (Sandbox Code Playgroud)

我尝试过使用正斜杠和反斜杠,有/无.chstml,我能想到的每一个组合.我开始认为这不受支持,但我无法想象为什么它不会.

asp.net-mvc asp.net-mvc-templates asp.net-mvc-3

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

存储过程中是否需要"SET NOCOUNT OFF"?

我有很多程序set nocount on.

是否有必要在存储过程结束时将其关闭?

例如:

create procedure DummyProc
as
begin
    set nocount on
    ...
    set nocount off
end
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server nocount

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

pjax是采用"流畅"导航的方式吗?

我已经开始使用pjax,因为我想为我的用户提供快速,流畅的体验,而不需要大量不必要的HTTP请求和重复呈现未更改的HTML.

我在我的网站上运行得相当好,我必须说起来并运行起来非常容易,考虑到它对体验的影响有多大.

但是,我看到很少支持pjax - 无论是在StackOverflow上还是在网络上(谷歌搜索返回的顶部结果 Web开发完全 无关).

但是我印象深刻,即使它还没有被广泛支持,我仍然可以使用它.我主要担心的是当我已经在没有大量支持的情况下将代码投入其中时遇到大问题.所以我想确保那里没有别的东西.

有没有其他方法可以实现pjax提供的我不知道的相同功能?或者它是如此新鲜,以至于没有多少人知道它呢?或者,这只是一个糟糕/有问题的实施?

ajax jquery pjax

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

GAC 32位与64位

我一直在寻找一段时间试图更好地理解这一点,但我没有找到任何直截了当的答案.

我有一个组件需要添加到GAC.我正在运行Windows 7 64位,并且为了解决问题(SSIS 2005无法识别DLL),我正在尝试确保在适当的GAC中注册了DLL(.NET 4.0) .

所以这是我的问题:

  1. Windows 7中64位和32位GAC的物理位置在哪里?我知道C:\ Windows\assembly,但不知道这是哪一个,另一个是哪里.

  2. 我使用哪个版本的gacutil将程序集添加到64位GAC?32位GAC?我知道C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC,我假设这是32位,但不确定64位gacutil在哪里.

  3. 什么决定了应用程序在组件中查找哪个GAC?我假设这取决于应用程序是64位还是32位,但我想知道它是否还有更多.

提前致谢.

更新:

在深入了解ShaneBlake的回答之后,我记得.NET 2.0和.NET 4.0 GAC位于不同的位置.所以:

.NET 2.0 GAC :(
c:\windows\assembly32位和64位?)

.NET 4.0 GAC
c:\windows\Microsoft.NET\assembly\GAC_32(仅限32位)
c:\windows\Microsoft.NET\assembly\GAC_64(仅限64位)
c:\windows\Microsoft.NET\assembly\GAC_MSIL(32位和64位?)

c# 64-bit gac gacutil visual-studio-2010

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

解决防伪令牌问题

我有一个表格帖子,一直给我一个反伪造令牌错误.

这是我的表格:

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.EditorFor(m => m.Email)
    @Html.EditorFor(m => m.Birthday)
    <p>
        <input type="submit" id="Go" value="Go" />
    </p>
}
Run Code Online (Sandbox Code Playgroud)

这是我的行动方法:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Join(JoinViewModel model)
{
    //a bunch of stuff here but it doesn't matter because it's not making it here
}
Run Code Online (Sandbox Code Playgroud)

这是web.config中的machineKey:

<system.web>
  <machineKey validationKey="mykey" decryptionKey="myotherkey" validation="SHA1" decryption="AES" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

A required anti-forgery token was not supplied or was invalid.
Run Code Online (Sandbox Code Playgroud)

我已经读过,更改HttpContext上的用户会使令牌无效,但这不会发生在这里.我的Join操作上的HttpGet只返回视图:

[HttpGet]
public ActionResult Join()
{
    return this.View();
}
Run Code Online (Sandbox Code Playgroud)

所以我不确定发生了什么.我一直在搜索,似乎所有东西都表明它是机器键更改(应用程序周期)或用户/会话更改.

还有什么可以继续?我该如何解决这个问题?

asp.net-mvc antiforgerytoken asp.net-mvc-3

34
推荐指数
4
解决办法
6万
查看次数

值在枚举列表中

我有一个相当基本的问题:如何检查给定值是否包含在枚举值列表中?

例如,我有这个枚举:

public enum UserStatus
{
    Unverified,
    Active,
    Removed,
    Suspended,
    Banned
}
Run Code Online (Sandbox Code Playgroud)

现在我想检查一下 status in (Unverified, Active)

我知道这有效:

bool ok = status == UserStatus.Unverified || status == UserStatus.Active;
Run Code Online (Sandbox Code Playgroud)

但必须有一种更优雅的方式来写这个.

这个问题的主题非常相似,但那是处理标志枚举,这不是标志枚举.

.net c# linq lambda enums

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

EF5 Code First Enums和Lookup Tables

我想定义一个用于EF5的枚举,以及一​​个相应的查找表.我知道EF5现在支持枚举,但开箱即用,它似乎只在对象级别支持此功能,并且默认情况下不会为这些查找值添加表格.

例如,我有一个用户实体:

public class User
{
    int Id { get; set; }
    string Name { get; set; }
    UserType UserType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和UserType枚举:

public enum UserType
{
    Member = 1,
    Moderator = 2,
    Administrator = 3
}
Run Code Online (Sandbox Code Playgroud)

我希望数据库生成创建一个表,如:

create table UserType
(
    Id int,
    Name nvarchar(max)
)
Run Code Online (Sandbox Code Playgroud)

这可能吗?

entity-framework ef-code-first entity-framework-5

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

EF实体与服务模型与视图模型(MVC)

我正在尝试理解和设计您的应用程序/域模型(POCO/DTO)的良好实践.

假设我有以下数据库表,帐户:

UserID int
Email varchar(50)
PasswordHash varchar(250)
PasswordSalt varchar(250)
Run Code Online (Sandbox Code Playgroud)

当然,EF4会像这样构建实体:

public class Account
{
    public int UserID { get; set; }
    public string Email { get; set; }
    public string PasswordHash { get; set; }
    public string PasswordSalt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我有一个用于注册新用户的视图模型,可能看起来像这样:

public class RegistrationViewModel
{
    public string Email { get; set; }
    public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

最后,我有一个需要注册用户的服务:

public class RegistrationService
{
    public void RegisterUser(??? registration)
    {
        // Do stuff to register user …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework viewmodel

24
推荐指数
2
解决办法
4170
查看次数

迫切需要一个适用于Ajax的Adsense解决方案

我知道这个问题已经被问了一些 时间在这里.但这些看起来已经过时了,看起来Adsense for Ajax项目已经被封装(或者至少是非常缓慢的移动).

我有一个网站,我最近将pjax集成到了 - 基本上,它使用Ajax加载主要内容区域,同时使用javascript维护浏览器历史记录和后退/前进功能.history.pushState它使世界变得异乎寻常整个网站的响应能力如何,因为它不再需要对网站的所有外壳(javascript,css,images)进行HTTP请求.

但Adsense不会与Ajax合作 - 至少不是本地的.我已经阅读了有关iFrame解决方案的内容,但听起来像iFrame和Ajax,我的pjax解决方案不能很好地协同工作.

就Adsense的用法而言,我所做的并不是狡猾的.当用户点击链接时,我仍然只是在每页导航中展示一组广告.它只是没有执行完整的页面级HTTP请求.

有什么选择吗?有没有人做过这样的事情?或者,是否有人知道Adsense for Ajax项目的任何更新?

我需要弄明白这一点.如果我不能,我可能会选择pjax而不是Adsense,这意味着我的整个商业计划必须重新进行.啊.

提前致谢.

ajax iframe adsense pjax

24
推荐指数
2
解决办法
6321
查看次数

使用ModelBinder属性与ModelBinders.Add()

有人能告诉我在global.asax中使用[ModelBinder()]属性与注册模型绑定器的优点/精确度ModelBinders.Add()吗?

我能想到的一个优点是它更明确,而在全局注册ModelBinders对于检查动作方法的人并不那么明显.

我能想到的一个权衡是它不可重复使用,因为您必须将此属性添加到需要使用此模型绑定器的所有操作方法,而在全局中注册ModelBinders将使其可用于接收该模型的所有操作方法.

这是唯一的区别吗?

换句话说,会说明这是正确的:

  • 如果你只在一个动作方法中使用模型(可能是两个,获取+发布),那么使用[ModelBinder()].
  • 如果您在多个操作方法中使用该模型,请在全局中注册它ModelBinders.

c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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