小编May*_*ayo的帖子

MVC简单模型绑定不起作用

好吧,这一定是一些愚蠢的东西,我做错了,但我找不到它.

MVC行动:

[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Create(BatchCreateViewModel createModel)
{
    return RedirectToRoute(MVC.Home.Display());
}
Run Code Online (Sandbox Code Playgroud)

BatchCreateViewModel:

public class BatchCreateViewModel
{
    bool searchAVM;
    bool searchBPO;
    bool searchAppraisal;
    int transactionAge;
    string Description;
    string uploadfile;
}
Run Code Online (Sandbox Code Playgroud)

View页面上有一些名为"searchAVM","searchBPO","searchAppraisal",(复选框)"transactionAge"(一组带整数值的单选按钮)和"description"(文本框)的控件

当我在"Create"的条目处中断时,createModel就在那里,但是具有所有默认值(对于字符串为null,对于布尔值为false,对于int为0).如果我检查Request.Form,值就在那里,但它们只是没有进入模型.

我究竟做错了什么?

(这是MVC 2,框架4)

model-view-controller asp.net-mvc model-binding

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

存储库中的业务规则?

让我们假设一个应用程序在模型/表示层中具有所有必要的业务规则,并且它们工作正常.我的问题是,是否应在SQL Server等存储库中使用冗余业务规则(即两个日期的跨度不能与任何其他现有跨度重叠).

在SQL Server中添加强制执行此规则的约束是否必要/有益?一方面,它可以防止任何人(包括DBA)在绕过应用程序时无意中破坏业务规则.此外,我们已经通过主键和外键在存储库中拥有某些形式的业务规则.另一方面,重复的规则需要额外的时间来开发和维护.

这个问题涵盖了许多不同的技术,所以我故意保持标签的通用性.

sql business-logic repository

6
推荐指数
3
解决办法
416
查看次数

ASP.NET MVC向最终用户显示操作成功

我见过的大多数ASP.NET MVC示例都描述了用户正在查看对象(或对象集合)然后从该页面移动到显示用户完成的表单的情况.在提交具有良好输入的表单后,用户被重定向回显示对象(或列表)的页面,并且用户可以看到他们的更改成功.

我遇到了每个业务规则都没有视图或列表页面的情况.

在ASP.NET MVC中,这种场景有哪些好的方法?

在使用Classic ASP和ASP.NET的过去,我会处理输入,然后向用户显示成功消息或带有错误的表单 - 所有这些都来自同一页面.这似乎违背了最佳实践(SRP,视图中没有逻辑等).

一种简单的方法是重定向到一个新页面,告诉用户他们的更改是成功的,但随后用户可以随时访问该页面.如果我开始使用逻辑来防止这种情况(即tempdata),那么解决方案就会变得很脏.

我可以重定向到目标网页,但没有确认.也许我可以依赖一个消息系统,当他们返回登录页面时向最终用户显示确认信息?

asp.net-mvc views single-responsibility-principle

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

确定SharePoint网站/网站集的大小

我即将开始谷歌搜索,但我想我会从这里开始.我们已经找到了一个枚举SharePoint网站集/网站的VB脚本.它调用stsadm来实现这一点,并递归地评估每个站点以获取子站点.

我想知道我们是否可以修改该脚本以获取每个网站集/站点的大小(以字节为单位).

我们正在使用MOSS 2007.

编辑:我在SO上找到了一个相关的问题,但没有看到磁盘空间问题的答案.

sharepoint stsadm

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

SQL Server插入XML参数-空字符串不转换为数字的null

我有一个存储过程,该过程使用XML参数并将“实体”节点作为记录插入表中。除非其中一个数字字段在XML中的值为空字符串,否则这将正常工作。然后,它将引发“将数据类型nvarchar转换为数字时出错”错误。

有没有一种方法可以告诉SQL将下面代码中的这些数字字段的空字符串转换为null?

-- @importData XML <- stored procedure param
DECLARE @l_index INT

EXECUTE sp_xml_preparedocument @l_index OUTPUT, @importData
INSERT INTO dbo.myTable
(
     [field1]
    ,[field2]
    ,[field3]
)
SELECT
     [field1]
    ,[field2]
    ,[field3]
FROM OPENXML(@l_index, 'Entities/Entity', 1)
    WITH 
    (
         field1 int 'field1'
        ,field2 varchar(40) 'field2'
        ,field3 decimal(15, 2) 'field3'
    )
EXECUTE sp_xml_removedocument @l_index
Run Code Online (Sandbox Code Playgroud)

编辑:并且如果有帮助,示例XML。除非我在上面的代码中注释掉field3或在下面的field3中提供一个值,否则将引发错误。

<?xml version="1.0" encoding="utf-16"?>
<Entities>
  <Entity>
    <field1>2435</field1>
    <field2>843257-3242</field2>
    <field3 />
  </Entity>
</Entities>
Run Code Online (Sandbox Code Playgroud)

xml insert sql-server-2008

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

使用具有真实SoC的MVC2,EF4和存储库模式的完整示例

我很难找到在遵循SoC的情况下在其存储库中使用EF4的ASP.NET MVC解决方案的示例.

任何人都可以向我提供以下示例(开源,书籍,教程,文章等)的参考资料吗?

  • ASP.NET MVC 2
  • 实体框架4
  • 存储库模式
  • 关注点分离(即BL没有明确引用任何内容)

除了上面的核心技术/模式/主体之外,如果这些示例也涵盖了这些主题,我将非常感激,因此我可以看到它们如何随EF4变化:

  • 多项目解决方案
  • 依赖注入(Windsor)
  • 单元测试
  • 工作单位

覆盖上下文接口使用的一个例子是Stack Overflow,但如果它存在,我正在寻找更全面的东西.

非常感谢!

open-source entity-framework-4 asp.net-mvc-2

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

NHibernate - 检索父/子,其标准仅适用于儿童

我有一个父实体,其中包含子实体列表.当使用NHibernate从SQL中检索具有子项的给定父项时,如果没有子项或者如果子项的日期与where条件匹配,则它可以正常工作.

如果存在与where子句不匹配的子项,则父项为null.我希望父项初始化为空子列表.

有关如何修改下面的代码以实现此目的的任何想法?

实体:

public class Parent
{
    public int ParentId;
    public IList<Child> Children { get; set; }

    public Parent()
    {
        Children = new List<Child>();
    }
}

public class Child
{
    public int ChildId;
    public DateTime ChildDate;
    public Parent Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

库:

IList<Parent> foundParents = new List<Parent>();

var criteria1 = DetachedCriteria.For<Parent>()
    .Add(Restrictions.Eq("ParentId", parentId))
    .CreateCriteria("Children", JoinType.LeftOuterJoin)
        .Add(Restrictions.Or(
            Restrictions.IsNull("ChildDate"), // no children at all
            Restrictions.And(
                Restrictions.Ge("ChildDate", startDate),
                Restrictions.Le("ChildDate", endDate)
            )
        ));

foundParents = Session
    .CreateMultiCriteria()
    .Add<Parent>(criteria1)
    .SetResultTransformer(new DistinctRootEntityResultTransformer()) …
Run Code Online (Sandbox Code Playgroud)

nhibernate join filter

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

在设计/构建时检查自定义属性参数

我有一个CustomAuthorize属性,用于检查用户是否可以访问功能(用户或角色可以与一组分层函数中的项相关联).

对于给定的行动方法......

[CustomAuthorize("Security.Admin.ManageWidgets.Update")]
Run Code Online (Sandbox Code Playgroud)

这有效,但我担心安全对象的更改可能会导致在运行时才会检测到的问题.我意识到我可以编写单元测试来减轻这种风险,但我想知道是否可以在编译时检查属性参数.我也喜欢Intellisense帮我输入这个表达式.

理想情况下,我可以传递一个lambda表达式.

[CustomAuthorize(i => i.Admin.ManageWidgets.Update)]
Run Code Online (Sandbox Code Playgroud)

不幸的是,这目前无法实现(Microsoft提供的其他信息).

我还尝试封装表达式,希望它被评估,然后作为字符串传递给属性,但是也无法使用相同的错误进行编译(Expression不能包含匿名方法或lambda表达式).

[CustomAuthorize(LambdaToString(i => i.Admin.ManageWidgets.Update))]
Run Code Online (Sandbox Code Playgroud)

如何为自定义属性参数添加一些设计时/构建时支持?

c# asp.net-mvc lambda attributes

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

如何规避错误的数据库架构?

我们的团队被要求为现有的SQL Server后端编写Web接口,该后端源于Access.

其中一个要求/约束​​是我们必须限制对SQL后端的更改.我们可以创建视图和存储过程,但是我们已经被要求按原样保留表/列.

SQL后端不太理想.由于缺少外键,大多数关系都是隐含的.有些表缺少主键.表和列名称不一致,包括空格,斜杠和井号等字符.

除了找到一份新工作或要求他们重新考虑这一要求之外,任何人都可以提供任何解决这一缺陷的良好模式吗?

注意:我们将使用SQL Server 2005和ASP.NET与.NET Framework 3.5.

sql asp.net database-design design-patterns data-modeling

4
推荐指数
2
解决办法
402
查看次数

在单元测试中处理DateTime.Now的策略

我的业务逻辑在周六或周日不执行某些功能.我希望我的单元测试能够验证这些功能是否已执行,但测试将在周六/周日失败.

我认为最简单的方法是让单元测试传达一个友好的消息,说明如果测试结果在周六/周日运行则无效.

用C#/ NUnit ......

Assert.That(
  DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.DayOfWeek !=      
  DayOfWeek.Saturday, "This test cannot be run on Saturday or Sunday");
Run Code Online (Sandbox Code Playgroud)

试图嘲笑约会是否可行/可取?是否有其他策略来处理这种情况?

c# datetime unit-testing

4
推荐指数
2
解决办法
2344
查看次数