小编Nul*_*nce的帖子

什么是C#在javascript/jquery等待?

我正在使用一个名为的jQuery库 bootbox

bootbox.dialog({
    title: "Group",
    buttons: {
        success: {
            label: "OK",
            className: "btn-success",
            callback: function () {
                postForm();
            }
        }
    }
});

function postForm() {        
    $.ajax({
        type: "POST",
        url: $("#add-group").val(),
        data: $("#form").serialize(),
        success: function (data) {
            return true;
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            return false;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

当我点击"确定"按钮时,除非我返回如下的假值:

callback: function () {
    return false;
}
Run Code Online (Sandbox Code Playgroud)

对话框将关闭.

在回调函数中,我正在调用postForm哪个函数对我的服务器端进行AJAX调用以执行某些操作.根据该操作的结果,我想保持对话框仍然打开.

但是因为它是一个AJAX调用,并且结果需要一段时间才能返回,所以postForm()无论我的结果如何,对话框都会立即关闭.

如何告诉javascript等待ajax调用的结果?

如果我能做到这样的话会很棒:

callback: function () {
    var result = await postForm();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

javascript async-await bootbox

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

带有参数的ASP.NET Web Api HttpClient.GetAsync

我有以下Web Api方法签名

public HttpResponseMessage GetGroups(MyRequest myRequest)
Run Code Online (Sandbox Code Playgroud)

在客户端中,如何将MyRequest传递给调用方法?

目前,我有这样的事情

                var request = new MyRequest()
                    {
                        RequestId = Guid.NewGuid().ToString()
                    };

                var response = client.GetAsync("api/groups").Result;
Run Code Online (Sandbox Code Playgroud)

我该如何传递requestGetAsync

如果这是一种POST方法,我可以做这样的事情

var response = client.PostAsJsonAsync("api/groups", request).Result;
Run Code Online (Sandbox Code Playgroud)

c# asp.net rest web-services asp.net-web-api

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

urlopen 错误 [Errno 11001] getaddrinfo 失败

我是 Python 新手,正在学习视频教程。

所以这是代码片段

from urllib.request import urlopen
with urlopen('http://sixty-north/c/t.txt') as story:
    story_words = []
    for line in story:
        line_words = line.decode('utf-8').split()
        for word in line_words:
            story_words.append(word)
Run Code Online (Sandbox Code Playgroud)

我可以http://sixty-north.com/c/t.txt在我的浏览器中访问。

但是,当我在命令提示符中键入以下内容时:出现python words.py此错误:

C:\New folder>python words.py
Traceback (most recent call last):
  File "C:\Python33\lib\urllib\request.py", line 1248, in do_open
    h.request(req.get_method(), req.selector, req.data, headers)
  File "C:\Python33\lib\http\client.py", line 1065, in request
    self._send_request(method, url, body, headers)
  File "C:\Python33\lib\http\client.py", line 1103, in _send_request
    self.endheaders(body)
  File "C:\Python33\lib\http\client.py", line 1061, in endheaders
    self._send_output(message_body)
  File "C:\Python33\lib\http\client.py", line 906, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

SignalR演示不起作用

我正在按照这个关于启动SignalR项目的快速教程,在我的Hub类中,我有以下内容

using Microsoft.AspNet.SignalR.Hubs;

namespace MvcApplication8.Hubs
{
    public class ChatHub : Hub
    {
        public void BroadcastMessage(string message)
        {
            Clients.writeMessage(message);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

客户代码:

    $(document).ready(function () {
        var chat = $.connection.chatHub;
        chat.writeMessage = function(msg) {
            $("#messages").append("<li>" + msg + "</li>");
        };
        $("#buttonSubmit").click(function () {
            chat.broadcastMessage($("#txtInput").val());
        });
        $.connection.hub.start();
    }); 
Run Code Online (Sandbox Code Playgroud)

但是我收到编译时错误说:

'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext'不包含'writeMessage'的定义,并且没有扩展方法'writeMessage'接受类型'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext'的第一个参数可以找到(你是吗?)缺少using指令或程序集引用?)

出了什么问题?

我 使用包管理器控制台"Install-Package Microsoft.AspNet.SignalR -Pre" 从http://nuget.org/packages/microsoft.aspnet.signalr将SignalR安装到我的项目中

c# asp.net-mvc nuget signalr

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

在浏览不同页面时重复使用signalR中的相同连接

我有一个MVC项目,有多个页面.

我有一个漫长的运行过程,它会更新客户端的进度.但是,此更新仅发送给单个客户端,而不是向所有客户端广播.

Clients.Client(ConnectionId).sendMessage(msg);
Run Code Online (Sandbox Code Playgroud)

在我的layout.cshtml中,这是我连接到集线器的方式

    var serverHub = $.connection.notifier;
    window.hubReady = $.connection.hub.start(function () { });
Run Code Online (Sandbox Code Playgroud)

问题是,当我导航到另一个页面时,我不再收到来自signalr的消息,因为连接ID已更改.

我应该如何解决此问题,以便我的信号器中心仍然可以向单个客户端发送消息,同时客户端在页面之间导航.

asp.net asp.net-mvc websocket signalr

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

在开发时我会引用哪个版本的Crystal Reports(32位或64位)?

我目前正在使用Crystal Reports for VS 2012在64位PC上使用VS 2012.

安装Crystal Reports for VS 2012后,我注意到有两个主要文件夹:

  • Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64
  • Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86

我要部署的应用程序可以部署在32位和64位PC上,我应该参考哪些Crystal Reports DLL?x86还是x64?

或者我需要有两个独立的解决方案,一个是x86 dlls参考,另一个是x64?

更新:

我所做的是在开发时引用x86 dll,并在我的所有部署机器上安装x86可再发行版本的crystal报表,无论其架构如何.希望能帮助你们中的一些人

.net deployment 64-bit crystal-reports 32bit-64bit

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

来自集线器外部的SignalR广播不起作用

根据这里的wiki文章:https://github.com/SignalR/SignalR/wiki/Hubs

我可以通过我的集线器获取我的MVC应用程序来广播消息:

$(function () {
    // Proxy created on the fly          
    var chat = $.connection.chatterBox;

    // Declare a function on the chat hub so the server can invoke it          
    chat.client.addMessage = function (message) {
        $('#messages').append('<li>' + message + '</li>');
    };

    // Start the connection
    $.connection.hub.start().done(function () {
        $("#broadcast").click(function () {
            // Call the chat method on the server
            chat.server.send($('#msg').val());
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我的Hub位于一个名为ServerHub.dll的独立DLL中,如下所示

namespace ServerHub
{
    public class ChatterBox : Hub
    {

        public void Send(string message)
        { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc signalr

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

在N层WCF MVC应用程序中实现对象更改跟踪

我在网上看到的大多数示例都显示了WinForms/WPF上下文中的对象更改跟踪.或者,如果它在Web上,则使用连接对象,因此,可以跟踪对每个对象所做的更改.

在我的场景中,对象一旦离开数据层就会断开连接(映射到WCF中的业务对象,并映射到MVC应用程序上的DTO)

当用户对MVC上的对象进行更改(例如,更改1字段属性)时,如何从View中将该更改一直发送到DB?

我想有一个审计表,它保存对特定对象所做的更改.我想要保存的是仅对我们修改的属性的对象的前后值

我可以想到几种方法来做到这一点

1)为MVC层(或javascript中的)中的所有模型的每个属性实现一个IsDirty标志.将该信息一直传播回服务层,最后传播到数据层.

2)在服务层中使用这种更改跟踪机制会很好,但是如何在从MVC传回修改后的值之后跟踪"原始"值?

3)数据库触发器?但我不知道如何开始.这甚至可能吗?

对于n层mvc-wcf解决方案,是否有任何已知的对象更改跟踪实现?

审计表的示例:

Audit table

Id              Object         Property         OldValue                NewValue
--------------------------------------------------------------------------------------
1               Customer       Name             Bob                     Joe
2               Customer       Age              21                      22
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc change-tracking inotifypropertychanged n-tier-architecture

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

未捕获的TypeError:无法读取未定义的属性"文档"

我有以下功能,可以在我测试的几台PC上正常工作.我已经在Chrome,IE和Firefox上进行了测试,没有任何问题.但是,有一个特定的PC(运行Chrome),在该行上抛出此错误"Uncaught TypeError:无法读取未定义的属性'文档':

                win.document.write(data);
Run Code Online (Sandbox Code Playgroud)

可能是因为胜利是空的吗?

如果是这样,为什么在这台特定的PC上就是这种情况?

是否需要设置一些Chrome设置?

方法:

    function viewReport() {
        console.info('generating event report');
        var frmData = $('#frmEventReport').serializeArray();
        var rptName = 'EventReport' + Math.floor((Math.random() * 100) + 1);
        console.info('generated random report name ' + rptName);
        $.ajax({
            //type: "GET",
            timeout: 120000,
            url: '@Url.Action("EventReport", "Reports")',
            data: frmData,
            success: function (data) {
                console.info('succesfully called back');
                var win = window.open('', rptName, '_blank');
                console.info('opening window');
                win.document.write(data);

            },
            error: function (x, y, z) {
                console.info(x + ' ' + y + ' ' + z);
            }
        }); …
Run Code Online (Sandbox Code Playgroud)

.net javascript browser asp.net-mvc dom

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

在匿名类型中包含基于条件的属性

假设我有以下匿名类型

var g = records.Select(r => new
{                    
    Id = r.CardholderNo,
    TimeIn = r.ArriveTime,
    TimeOut = r.LeaveTime,
});
Run Code Online (Sandbox Code Playgroud)

是否可以执行如下操作:

var g = records.Select(r => new
{                    
    Id = r.CardholderNo,
    if (condition) 
    {
        TimeIn = r.ArriveTime;
    },
    TimeOut = r.LeaveTime,
    //many more properties that I'd like to be dependant on conditions.
});
Run Code Online (Sandbox Code Playgroud)

如何根据条件实现匿名类型?

.net c# anonymous-types

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