我有一个非常简单的ASP.NET MVC4页面.它正在呈现CustomerModel的编辑表单.表单正确显示,但是当我点击编辑并回发时,模型没有被绑定.相反,CustomerModel的所有属性都保留其默认值.需要注意的是正确的控制器方法是被调用,所以这不是问题.
我可以看到表单值与模型属性(Id,Name,Description)匹配的名称,但模型没有设置它们.
想法?
这是模型:
public class CustomerModel
{
[Required]
public Guid Id;
[Required]
public string Name;
[Required]
public string Description;
}
Run Code Online (Sandbox Code Playgroud)
这是相关的控制器方法:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(CustomerModel customerModel)
{
if (ModelState.IsValid)
{
//...Do stuff
return RedirectToAction("Index");
}
return View(customerModel);
}
Run Code Online (Sandbox Code Playgroud)
最后,这是一个带有填充值的表单集合的屏幕截图:

有没有办法配置AutoMapper以遵守实体框架的.Include样式加载指令?
我已经为我的上下文禁用了延迟加载,我想有条件地为特定实体加载相关数据.理想情况下,我想通过使用include语法来实现这一点.就像是:
if(loadAddreses)
{
query = query.Include(e => e.Addresses);
}
if(loadEmails)
{
query = query.Include(e => e.Emails);
}
Run Code Online (Sandbox Code Playgroud)
问题是,AutoMapper看到我正在预测的模型包括地址和电子邮件,并且正在生成加载所有数据的SQL,无论我要求EF包含什么.换一种说法:
var model = query.Project.To<MyModel>();
Run Code Online (Sandbox Code Playgroud)
如果MyModel具有Addresses集合,它将加载地址,而不管我的Include语句.
如果没有更改我的模型,以便我有一个没有地址或电子邮件属性的模型,有没有办法解决这个问题?我想我可以改变我的映射,但映射通常是静态的,并且在最初创建后不会改变.
我需要能够附加由大多数HTTP请求发送的HTTP头(或修改用户代理字符串)离开PC.
大多数情况下,我指的是Internet Explorer中的任何内容,以及来自.NET应用程序的任何内容.
我已经通过编写BHO来完成Internet Explorer方面的工作,但是BHO不会拦截加载到IE中的ClickOnce控件所做的请求,这是另一个要求.
在我的案例中,.NET应用程序都使用WebRequest.Create来发出请求.
这可能吗?我希望我能在某个地方向System.Net堆栈注入一些代码.
代理是一种可能性,但事实证明很难创建一个不像地狱那样的代理.HTTPS流量是另一个问题.
我正在尝试使用包含解决方案文件和项目文件的TFS 2012构建定义.
构建运行时,解决方案无法构建.相反,我得到的警告如下:
F:\ Source\1\MyCode\src\MySolution.sln.metaproj:指定的解决方案配置"Release | AnyCPU"无效.请使用"配置和平台"属性指定有效的解决方案配置(例如,MSBuild.exe Solution.sln/p:Configuration = Debug/p:Platform ="Any CPU")或将这些属性留空以使用默认解决方案配置.
这是由于一个错误导致Visual Studio使用"Any CPU"作为解决方案文件的平台,而它使用"AnyCPU"作为项目文件.请参阅:http: //connect.microsoft.com/VisualStudio/feedback/details/503935/msbuild-inconsistent-platform-for-any-cpu-between-solution-and-project
有没有办法配置我的构建,以使这项工作尽管有问题?即,一种将特定平台值传递给特定sln构建命令同时将不同值传递给其他命令的方法?
我想将Azure Queues用作高负载/高规模Web服务的状态机.
客户端将向Web服务端点提交请求,此时我将返回请求ID.
然后,我将消息提交到队列,以便工作者角色可以处理它,但在提交过程中不会发生数据库活动.相反,我想使用消息所在的队列来表示它的当前状态.
我的问题是,如果一个辅助角色从队列中抓取消息来处理它,它就会在该队列上变得不可见.如果我想检查该消息的处理状态,我的消息状态不明确.消息丢失/从未收到,或者它在队列中但是因为正在处理而不可见.
理想情况下,我希望能够在隐形信息中达到顶峰.如果我找到一个与请求ID匹配的,我知道它正在被处理,如果它是不可见的,或者它正在等待处理,如果它是可见的.显然,我知道它何时完成处理,因为该操作将导致数据库写入.
这是可能的,或者是我无法查看Azure队列中的不可见消息,这是不是?