小编sar*_*ake的帖子

应用程序的业务层是否应该能够访问Session对象?

假设您有3层:UI,业务,数据.

如果Business层需要访问Sessions,这是否是设计不佳的标志?关于它的一些事情感觉不对.是否有专门针对Web应用程序定制的指南?

我使用c#2.0 .net

c# session business-logic

7
推荐指数
3
解决办法
6534
查看次数

将空白选择项添加到下拉列表中的列表中

我的下拉列表是从数据库中填充的,如下所示:

DataTable dt = GetData(); ddlMylist.DataSource = dt; ddlMylist.DataBind();

现在dt包含数据,我希望在选择为空白时将"选择"字添加到列表顶部.似乎除了将它添加到dt(DataTable对象)之外没有其他选项....但是它似乎在某种程度上是错误的.

还有什么其他选择.它不一定是单词"选择"它可以只是一个空的空间...目前,在页面加载时我可以看到列表中的第一个数据项是好的和花花公子,但我有3个下降这是相互依赖的,我希望用户明确地做出一个选择,这将触发其他下拉相应的填充.

c# asp.net drop-down-menu

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

3层架构中的错误处理

如何优雅地实现错误处理?例如,我的数据访问层可能会抛出两种类型的错误:1)未授权访问,在这种情况下,页面应隐藏所有内容,只显示错误消息2)错误,告知用户此类内容已存在于数据库(例如,名称不是唯一的 - 例如),在这种情况下,我不想隐藏所有内容.

编辑:

由于这里的一些评论,我设计了我应该创建派生的专用异常类型,例如NotAuthorizedException,DuplicateException等等......它都很好,但是我可以看到2个问题:

1)每个存储过程都有一个返回字段p_error,其中包含一条错误消息.从DB获取数据后,我需要检查此字段以查看已返回的错误类型,因此我可以抛出适当的异常.所以,我仍然需要在某处存储我的错误类型/错误消息.....换句话说,我应该如何向用户发送确切的消息(在某​​些时候我需要),而不是先检查p_error字段.什么让我回到错误对象.任何人?

2)我可能会变成一场噩梦,其中异常的数量等于错误消息类型的数量.

我在这里错过了什么吗?

非常感谢大家!

c# error-handling n-tier-architecture

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

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

在ASP.net Web服务中,如果未指定上述内容,默认情况下响应格式是什么?另外,如果我的网络服务如下:

[WebMethod()]
        public List<Sample> GenerateSamples(string[][] data)
        {
            ResultsFactory f = new ResultsFactory(data);

            List<Sample> samples = f.GenerateSamples();
            return samples;
        }
Run Code Online (Sandbox Code Playgroud)

返回对象列表,如果我将响应格式更改为JSON,我必须将返回类型更改为字符串,然后如何在我的javascript中访问对象?

目前我在我的JS中调用此Web服务,例如:

 $.ajax({
    type: "POST",
    url: "http://localhost/TemplateWebService/Service.asmx/GenerateSamples",
        data: jsonText,

        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            var samples = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

            if (samples.length > 0) {
                doSomethingHere(samples);
            } else {
                alert("No samples have been generated");
            }



        },

        error: function(xhr, status, error) {
            var msg = JSON.parse(xhr.responseText);
            alert(msg.Message);
        }

    }); …
Run Code Online (Sandbox Code Playgroud)

ajax jquery web-services

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

使用Jquery查找下一个textarea

HTML

<tr id="rowId"><td><textarea class="inputTextarea"></textarea></td><td><textarea class="inputTextarea"></textarea></td></tr>
<tr id="rowId2"><td><textarea class="inputTextarea"></textarea></td><td><textarea class="inputTextarea"></textarea></td></tr>
<tr id="rowId3"><td><textarea class="inputTextarea"></textarea></td><td><textarea class="inputTextarea"></textarea></td></tr>
Run Code Online (Sandbox Code Playgroud)

如果我知道rowId,我如何从任何仲裁点开始在这个页面上找到下一个textarea.我不是指任何输入,只是textarea.我需要能够从任何行开始,然后继续前进到下一个textarea,基本上是沿着行向下行进.

编辑基于答案,我使用以下代码逐行遍历textareas:

var curElt = $('#' + startAt);  //startAt is the first row id   

        for(var i=1; i < 10; i++) {

            $(curElt).find('textarea').eq(0).val(i);
            $(curElt).find('textarea').eq(1).val(i+1);

            curElt = $(curElt).next();
        }
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom

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

Jquery在表行中找到一个复选框

我的HTML

<TR class="datarow" id="rowId"><TD>1</TD><TD>895171</TD><td class="classID"><INPUT type="checkbox" /></TD></TR>
Run Code Online (Sandbox Code Playgroud)

我如何使用Jquery来确定是否选中了此特定行中的复选框.假设我知道唯一的rowId.

目前,我正在这样做

var checkbox = $('#' + rowId + " td input:checkbox");

        if (checkbox.checked) {
           alert("checked");
        } else {
           alert("unchecked");
        }
Run Code Online (Sandbox Code Playgroud)

但是,当检查复选框时,似乎没有检测到.

编辑奇怪的是,以下内容也不起作用:

        var curRow = $('#' + curRowId);
        var checkbox = $(curRow).find('input:checkbox').eq(0);



        if (checkbox.checked) {
           alert("checked");

        } else {
           alert("unchecked");

        }
Run Code Online (Sandbox Code Playgroud)

jquery

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

使用asp.net mvc 3在$ ajax中的相对URL

我知道可以使用这个功能

@Url.Action("MyInfo", "Home")
Run Code Online (Sandbox Code Playgroud)

避免网址的硬编码,但我的$.ajax调用是在一个单独的.js文件中.以上仍然有效吗?

据我所知,该@Url.Action遗嘱只能在Razor文件中使用.但考虑到我们被建议使用非突兀的JS,我不太清楚如何使用它@Url.Action.

请指教.

url relative-path razor asp.net-mvc-3

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

asp.net MVC和$ .ajax增加了性能开销

当jquery $ .ajax函数调用asp.net MVC控件时,我偶然发现了一个非常奇怪的性能不佳问题.该控件执行的数据库操作需要403毫秒,但根据Firebug,总的$ .ajax调用是3400毫秒,这是相当多的额外开销.我需要优化性能,但我不清楚这种开销来自何处.

这是代码.在我的控制器中,我有

 public JsonResult SetSearchResults(Criteria searchCriteria)
 {

       SearchResult myReportsResult = _repository.GetResults(searchCriteria);    

       //the statement above takes 403 ms

       return Json(myReportsResult);
  }





 public  SearchResult GetResults(SearchCriteria searchCriteria)
  {
        SearchResult result = SearchResult();

         DataTable dbResults = _da.GetDBResults(searchCriteria);       


        List<IncidentReportHeader> irs = new List<IncidentReportHeader>();            

        for (int i = 0; i < dbResults.Rows.Count; i++)
        {
            IncidentReportHeader ir = new IncidentReportHeader();

            //populate all the properties of the ir object here,                

            irs.Add(ir);
        }

        result.Reports = irs;       
        return result;        
}

    //models
    public class SearchResult
    {

        private …
Run Code Online (Sandbox Code Playgroud)

jquery asp.net-mvc-3

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

从MemoryStream返回时,ASP.net MVC ActionResult会破坏excel文件

我在Controller中有以下操作

public ActionResult DownloadExcel()
        {
            //create and populate Excel file here
            C1XLBook testBook = new C1XLBook(); 
            //populate it here

            MemoryStream ms = new MemoryStream();
            testBook.Save(ms, FileFormat.Biff8);

            return File(ms, "application/ms-excel", "test-file.xls");           
        }
Run Code Online (Sandbox Code Playgroud)

打开文件时,我收到Excel消息,指出该文件与扩展名不匹配,文件打开已损坏.

如果我将文件保存在硬盘驱动器上并从那里返回,一切都很好:

return base.File(@"C:\LOGS\test-file.xls", "application/ms-excel", "test-excel.xls");
Run Code Online (Sandbox Code Playgroud)

我最初认为保存功能在将其保存到MemoryStream时会破坏它,所以我保存并重新加载它并且很好地传回给用户 - 当保存在硬盘驱动器上并从那里返回时,而不是从的MemoryStream

有任何想法吗?我不太喜欢将文件保存在硬盘上....此外我应该能够将它保存到MemoryStream并从那里返回它?

我有一个预感,也许MemoryStream不应该用于返回MVC中的文件,因为每个请求都是隔离的?

excel memorystream asp.net-mvc-3

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

在JS文件中访问ViewModel(asp.net MVC)

我在Razor里面一直使用这样的东西

@section Includes {  
      <script type="text/javascript">
        var somestuffneeded = @(Html.Raw(Json.Encode(Model.datamember))); 


      </script>

}
Run Code Online (Sandbox Code Playgroud)

但这看起来并不那么干净,因为它与布局位于同一个文件中(因为它不能直接从.js文件中运行).访问和查看ViewModel的任何干净的替代方法都在.js文件中传递?

javascript asp.net-mvc viewmodel

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