我有一个包含以下内容的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) 我正在尝试建立一个.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.TaskRunners2.<>c__DisplayClass3a.<RunTask>b__39(Task1 t)
我有AppHub:
public class AppHub : Hub {
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在使用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)
但是,我不确定如何在此消息中包含换行符。我是否应该在此字符串客户端中插入任何内容以表示换行符?任何指导都会很棒。
我有一个包含三层的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块会发生什么?
假设您有一个使用Web Api项目构建的Recipe Manager应用程序.您是否在JSON中发送食谱列表及其成分名称?或者您是否发送食谱,成分名称和成分详细信息?确定SPA的初始有效载荷有多大的过程是什么?
api asp.net-mvc web-applications asp.net-web-api single-page-application
我有以下内容:
@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的例子都会很棒.
我有一个处理"课程"的MVC4项目.整个应用程序中的许多页面需要处理课程列表 - 用户配置文件需要提取列表,/课程的索引视图需要提取列表等.
由于这个数据几乎总是需要的,我想把它作为初始请求的一部分加载,所以我只需要一次查询数据库.
我想象一种情况,数据放在Layout.cshtml中,然后其他视图可以根据需要访问Model数据,尽管我没有看到实现这一目标的明确方法.我想我可以把问题分成两部分:
我对这两方面都有点困惑 - 我怎么才能做到这一点?
我有以下内容:
[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方法?
我想要的效果:

我正在使用foreach循环来显示此容器元素中的div.快速和肮脏的是做索引%4(或者每行的div数是多少)和相应的样式,但是如果有的话,我正在寻找一种仅用于css的方法.
我现在正在玩的一件事是将白色边框应用于具有负边距的容器元素,以掩盖外部div的边界......还有其他替代方案吗?
编辑:我正在尝试"容器周围的白色边框"方法,但它没有工作,因为我浮动divs左(为响应性) - 所以只要容器元素的白色边框重叠黑色边框div,div被推到下一行.
我正在开发一个具有各种类型通知的应用程序.通知示例:
我想将所有这些都绑定到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 ×6
c# ×2
signalr ×2
api ×1
azure ×1
azure-queues ×1
css ×1
css3 ×1
nunit ×1
signalr-hub ×1
twilio ×1