小编Rob*_*ous的帖子

在MVC4中为ViewModel设置默认值的适当方法?

我有一个包含以下内容的viewModel:

public class CreateCardViewModel
    {
        [HiddenInput(DisplayValue = false)]
        public int SetId { get; set; }

        [Required]
        public IList<Side> Sides { get; set; }

        [Required]
        public int Stage { get; set; }

        [Required]
        [DataType(DataType.Date)]
        [HiddenInput(DisplayValue = false)]
        public DateTime DateCreated { get; set; }

        [Required]
        public bool IsReady { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

模型如下:

public class Card
    {

        public virtual int CardId { get; set; }

        // belongs to a Set
        public virtual int SetId { get; set; }
        public virtual …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

SignalR .Net Client - 解析值时遇到意外的字符

我正在尝试建立一个.Net客户端,从我的服务层向我的signalR集线器发送消息.我正在关注本指南:http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-net-client#callserver

这就是我所拥有的:

        _hubConnection = new HubConnection(_baseUrl); // "http://localhost:3806"
        _hubProxy = _hubConnection.CreateHubProxy("AppHub");
        _hubConnection.Start().Wait();
Run Code Online (Sandbox Code Playgroud)

该集线器位于同一个项目中 - 它是一个带有表单身份验证的MVC应用程序.

我永远无法通过.Wait()调用,它总是出错以下内容:

Message=Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
       Source=Newtonsoft.Json
Run Code Online (Sandbox Code Playgroud)

更多痕迹:

在Microsoft.AspNet.SignalR.Client.Transports.TransportHelper.b_中的Newtonsoft.Json.JsonConvert.DeserializeObject [T](字符串值).在Microsoft.AspNet.SignalR.TaskAsyncHelper上的字符串原始字符串.<> c _DisplayClass19 2.<Then>b__17(Task1 t)在Microsoft.AspNet.SignalR.TaskAsyncHelper.TaskRunners 2.<>c__DisplayClass3a.<RunTask>b__39(Task1 t)

我有AppHub:

public class AppHub : Hub {
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

signalr signalr-hub

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

使用C#为Twilio SMS编码换行符?

我正在使用WebApi 2.2扩展Twilio API。我安装了Twilio C#库。

我正在使用一种形式来捕获Web应用程序中的字符串,然后将其发送到webAPI。我想知道如何利用C#库发送带有换行符的消息。

示例代码显示以下内容:

        var msg = twilio.SendMessage("+15084043345", "+15084043345", "Can you believe it's this easy to send an SMS?!");
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在此消息中包含换行符。我是否应该在此字符串客户端中插入任何内容以表示换行符?任何指导都会很棒。

c# twilio asp.net-web-api

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

从n层ASP.Net MVC应用程序的服务层处理或引发异常的合适方法是什么?

我有一个包含三层的Web应用程序:Web>服务>核心。服务具有许多业务逻辑,可帮助Web构造和解释viewModel。有时,尽管Services层中可能存在问题,并且应该将用户推送到错误页面。

如何在MVC应用程序的服务层中实现错误处理?例如:

public void DeleteOrder(int orderId)
{
    var order = _db.Order.FirstOrDefault(c => c.OrderId == orderId);
    if (order == null)
    {
        // error handling
    }

    _db.Orders.Remove(order);
    _db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

那isNull块会发生什么?

asp.net-mvc exception-handling asp.net-mvc-3 asp.net-mvc-4

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

您如何决定在单页应用程序中向用户推送多少数据?

假设您有一个使用Web Api项目构建的Recipe Manager应用程序.您是否在JSON中发送食谱列表及其成分名称?或者您是否发送食谱,成分名称和成分详细信息?确定SPA的初始有效载荷有多大的过程是什么?

api asp.net-mvc web-applications asp.net-web-api single-page-application

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

如何编辑MVC4表单中的子对象?

我有以下内容:

@foreach (var parent in Model.Parents)
{      
    @foreach (var child in parent.Children)
    {    
        @Html.TextAreaFor(c => child.name)    
    }                   
}
Run Code Online (Sandbox Code Playgroud)

如何编辑子对象?我也试过这样的事情:

<input type="hidden" name="children.Index" value="@child.Id" />
<textarea name="children[@child.Id]" >@child.Name</textarea>
Run Code Online (Sandbox Code Playgroud)

要将IDictionary传递给控制器​​,但我收到错误:

[InvalidCastException: Specified cast is not valid.]
   System.Web.Mvc.CollectionHelpers.ReplaceDictionaryImpl(IDictionary`2 dictionary, IEnumerable`1 newContents) +131
Run Code Online (Sandbox Code Playgroud)

这似乎是一项非常普遍的任务......有一个简单的解决方案吗?我错过了什么?我需要使用编辑模板吗?如果是这样,任何兼容MVC4的例子都会很棒.

asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

如何将模型加载到_Layout.cshtml并在各种视图之间共享?

我有一个处理"课程"的MVC4项目.整个应用程序中的许多页面需要处理课程列表 - 用户配置文件需要提取列表,/课程的索引视图需要提取列表等.

由于这个数据几乎总是需要的,我想把它作为初始请求的一部分加载,所以我只需要一次查询数据库.

我想象一种情况,数据放在Layout.cshtml中,然后其他视图可以根据需要访问Model数据,尽管我没有看到实现这一目标的明确方法.我想我可以把问题分成两部分:

  1. 获取加载到Layout.cshtml中的数据
  2. 从其他视图访问此数据

我对这两方面都有点困惑 - 我怎么才能做到这一点?

asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

如何使每个夹具的安装和拆卸工作?

我有以下内容:

    [TestFixture]
    public class SmokeTest : BaseTest
    {
        [Test(Description = "Should Do This")]
        public void ShouldDoThis()
        {
            //Tests,Assertions,etc
        }

        [Test(Description = "Should Do That")]
        public void ShouldDoThat()
        {
            //Tests,Assertions,etc
        }

    }
Run Code Online (Sandbox Code Playgroud)

BaseTest定义为:

   [TestFixture]
   public class BaseTest
   {
    [TestFixtureSetUp]
    public void SetUp()
    {
        // set up browsers
    }
    [TearDown]
    public void Dispose()
    {
        // dispose browsers
    }
   }
Run Code Online (Sandbox Code Playgroud)

目标是每个testFixture(//设置浏览器)创建一次selenium浏览器的驱动程序,然后在Fixture的末尾拆除.现在浏览器在第一次测试后被杀死了,第二次测试失败了一些"无法连接到远程服务器"错误.

我想在这里针对第一个问题 - 为什么在第一次测试后调用TearDown方法?

c# nunit

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

没有外边框但具有所有内边框的框网格

我想要的效果:

在此输入图像描述

我正在使用foreach循环来显示此容器元素中的div.快速和肮脏的是做索引%4(或者每行的div数是多少)和相应的样式,但是如果有的话,我正在寻找一种仅用于css的方法.

我现在正在玩的一件事是将白色边框应用于具有负边距的容器元素,以掩盖外部div的边界......还有其他替代方案吗?

编辑:我正在尝试"容器周围的白色边框"方法,但它没有工作,因为我浮动divs左(为响应性) - 所以只要容器元素的白色边框重叠黑色边框div,div被推到下一行.

css css3

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

可扩展的SignalR + Azure - 在哪里放置SignalR,我应该使用Azure队列吗?

我正在开发一个具有各种类型通知的应用程序.通知示例:

  • 消息已创建
  • 列出已提交
  • 上市批准

我想将所有这些都绑定到SignalR,以便任何连接的客户端实时获得更新.

就架构而言 - 现在该应用程序完全位于Azure网站上托管的单一解决方案中.每种通知类型的触发器都存在于此应用程序中.

当触发器被击中时,我想告诉signalR,"嘿,将此消息发送给以下客户端"以及userIds列表.我假设可以基于userId来识别连接的客户端......我假设send message to clients应该在Web应用程序之外执行该过程,以便不会减慢MVC应用程序或者丢失数据的风险打破异步调用.第一个问题 - 这些假设是否正确?

假设如此,这意味着我需要像专用的web/worker角色那样向客户端发送消息.我可以将来自我的Web应用程序的消息直接传递给此过程,但是如果该过程死亡会发生什么?弹性问题让我相信传递消息的正确方法是通过某种队列.第二个问题 - 这是一个有效的思路吗?

假设是这样,这意味着我可以使用一个好的'Azure SQL数据库作为队列,但似乎有一些专门的(也许更便宜的)服务来处理消息队列,例如:

http://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/

第三个问题:这应该用作signalR的排队机制吗? 我有兴趣在将来使用Redis进行缓存...... Redis会比队列服务更好还是更差?

最后的问题:

我试图在这里说明我提出的架构:

在此输入图像描述

我在这里最不清楚的是MVC应用程序将如何知道何时排队,或者SignalR进程将如何知道何时进行广播.MVC应用程序应该盲目排队,而不关心连接的客户端吗?这似乎在队列中引入了大量浪费的空间,并且在工作者角色中浪费了周期,因为很少一部分客户端将被连接.

我能想到的唯一其他方法是以某种方式让MVC应用程序可以看到SignalR进程,以查看客户端是否已连接......如果是,则为Enqueue.这让我感到不舒服,因为这意味着我必须在图表上为每个被击中的触发器击中红线,即使完成异步 - 让我担心性能和可靠性.

可扩展,高性能SignalR消息广播的推荐架构是什么? 绩效是重中之重,紧随其后的是成本.

奖金问题:

  • 如果某些消息的优先级高于其他消息怎么办?是否应该使用两个队列,其中一个总是在另一个队列之前被检查?

asp.net-mvc azure azure-worker-roles azure-queues signalr

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