小编Dam*_*ien的帖子

ASP.Net MVC和N-Tier

问候,

我提前道歉,我没有对此进行过彻底的研究,以便自己回答这个问题,但我想这需要一些时间,而且在我投入更多时间学习它之前,我宁愿知道.我最初的研究中找不到任何东西..

如果您已经使用多层架构(数据层,逻辑层,表示层),为什么要使用ASP.Net MVC?除了控制器具有比逻辑层更多的功率之外.

我是否正确地认为我可以在MVC的Model部分中使用nHibernate和我的所有数据访问类,实体和映射?

使用控制器时,最好将大量逻辑分成单独的类,以便从多个控制器中调用它吗?或者我可以从控制器本身调用它们,考虑到我不希望所有这些都是动作,只是常规方法.

谢谢

nhibernate asp.net-mvc presentation-layer n-tier-architecture data-structures

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

处理ASP.Net MVC中的过期标题

我需要有关如何在ASP.Net MVC中为我的CSS,图像和JavaScript文件添加Expires Headers的建议或建议.

关键问题是软件不在一个位置.它分发给处理托管的客户,所以我宁愿有一个不需要在IIS中手动配置的解决方案,除非它是不可避免的!

我用Google搜索,大多数答案似乎都集中在通过控制器返回的内容上.虽然不能为JavaScript文件做到这一点..

asp.net

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

在ASP.Net Postback之后的<Head>中维护JavaScript代码.

正如标题所示,我在回发时维护代码时遇到问题.我在Head部分有一堆jQuery代码,这个工作正常,直到发生回发,之后它停止运行!

我怎样才能解决这个问题?头部没有在回发上阅读,有没有办法可以强制这种情况发生?

JavaScript是:

        <script type="text/javascript">
        $(document).ready(function()
        {
            $('.tablesorter tbody tr').tablesorter();

        $('.tablesearch tbody tr').quicksearch({
            position: 'before',
            attached: 'table.tablesearch',
            stripeRowClass: ['odd', 'even'],
            labelText: 'Search:',
            delay: 100
        });
       }); 
        </script>
Run Code Online (Sandbox Code Playgroud)

javascript asp.net jquery postback

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

nHibernate多对多映射和延迟加载

我在Web应用程序中遇到了多对多关联和nHibernate会话的问题.

我正在使用的对象始终保持与会话的连接,但是往返于服务器.从来没有遇到过问题.到现在.我在班上添加了一个新的,多对多的关联.

这是多对多映射(名称更改为更有意义):

 <bag name="ProductsToCategory" table="Tab_ProductsToCategory"" cascade="all-delete-orphan">
      <key column="ProductID" />
      <many-to-many class="CategoryClass" column="CategoryID" />
 </bag>
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它适用于初始加载.但是,后续调用访问此对象的服务器 - 该对象在Web会话中维护 - 导致此集合被破坏并抛出此错误:

没有懒惰地初始化集合,没有关闭会话或会话

奇怪.我想知道是否存在导致问题的多对多关联?这个多对多只添加到这个类而不是映射另一端的类,即"CategoryClass",因为我不需要它.在我添加此映射之前,Object似乎没问题.

有任何想法吗?

另外:我尝试简单地检查对象是否不再在会话中.不是.所以我打电话给:session.refresh(productClass)一切都得到了正确的更新,包括我麻烦的映射.然而.它将加载TWICE中的每个项目!该集合的项目数量是数据库中的两倍,每个项目出现两次.如果我能得到这个问题的答案,那么前一个问题并不重要.

如果您需要任何其他信息,请告诉我.干杯.

nhibernate session many-to-many lazy-loading nhibernate-mapping

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

模拟Ajax.IsRequest返回False

我试图模拟ASP.Net MVC的Ajax.IsRequest()方法.我发现了如何做以使它返回true:

Expect.Call(_myController.Request.Headers["X-Requested-With"]).Return("XMLHttpRequest").Repeat.Any();
Run Code Online (Sandbox Code Playgroud)

这工作并返回true.现在我需要测试代码的另一个分支.我如何模仿它返回虚假?我试图完全删除模拟,它失败了:

System.NullReferenceException:对象引用未设置为对象的实例.]

如果我做:

Expect.Call(_templateReportController.Request["X-Requested-With"]).Return(null).Repeat.Any();
Run Code Online (Sandbox Code Playgroud)

它失败并出现同样的错误.

整个测试:

  /// <summary>
    /// Tests the Edit Action when calling via Ajax
    /// </summary>
    [Test]
    public void Test_Edit_AjaxRequest()
    {
        Group group = new Group();
        group.ID = 1;
        group.Name = "Admin";
        IList<Group> groupList = new List<Group>() { group };

        Definition def  = new Definition();
        def.ID = 1;
        def.Name = "Report";
        def.LastModified = DateTime.UtcNow;
        def.Groups.Add(group);


        using (_mocks.Record())
        {
            Expect.Call(_myController.Request["X-Requested-With"]).Return("XMLHttpRequest").Repeat.Any();
            Expect.Call(_DefBiz.GetAll<Group>()).Return(groupList);
            Expect.Call(_DefBiz.Get<Definition>(1)).Return(def);
        }

        myController.DefAccess = _DefBiz;
        PartialViewResult actual;

        using (_mocks.Playback())
        {
            actual = (PartialViewResult)myController.Edit(1);
        } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc unit-testing rhino-mocks

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

执行LIKE条件时参数化查询中断.为什么?

所以,我有一个执行参数化LIKE查询的方法.该方法接收搜索参数/值,然后将其添加到准备查询的命令中.

它不起作用.它应该工作,当我编写值来直接搜索SQL字符串,没有参数化时,它确实有效!当我把它作为一个参数是不是!有任何想法吗.

这里有一些(假的,我已更改名称)示例代码.

myDataReader = SQLExecute("SELECT * FROM TableOfAwesomeness WHERE BestTVShow LIKE 'Arrested Development%'")
Run Code Online (Sandbox Code Playgroud)

会工作.然而

Function MethodOfReturningHorror(ByVal TVShow as String) as SqlDataReader
{
dim command as new SQLCommand
command.connection = sqlconnection
command.CommandText = "SELECT * FROM TableOfAwesomeness WHERE BestTVShow LIKE '@tvShow%'"
command.Parameters.Add("tvShow",TVShow)

return command.ExecuteReader()
}
Run Code Online (Sandbox Code Playgroud)

为了懒惰/简洁,我错过了与问题无关的代码.所以忽略返回位和东西,所有重要的是数据读取器什么都不包含,而它在第一个例子中.我确信它与LIKE子句的参数化有关.

谢谢!

.net sql parameters sql-like

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