现在开始表单,第一次,当我开始调试我的MVC应用程序时,我收到此错误
验证视图状态MAC失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法.AutoGenerate不能在群集中使用.
完整堆栈跟踪
[ViewStateException: Invalid viewstate.
Client IP: 127.0.0.1
Port:
Referer:
Path: /Login/LogOn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7
ViewState: Fvq7WNUu+qCC00VbTIOTUuBvK4YHjxp3RubwsrFYW93hKlF7I4GLzaNHceRqjjJB0GwvRPWwlwE6brhAZAo+Mp191B/C+l8Dw/w7aQBDCpWGC3ox6hkSeZp10vbjm9eJFQZmGSPyC1rKYwApBBaz0Q==]
[HttpException (0x80004005): Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.]
System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +198
System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) +14
System.Web.UI.ObjectStateFormatter.Deserialize(String …Run Code Online (Sandbox Code Playgroud) 我的要求是显示一个包含多个过滤器的页面以应用于网格数据.
假设我们正在谈论订单,订单具有以下属性
public class Order {
public int OrderID
public DateTime OrderDate
public DateTime ShipmentDate
public int OrderTotal
public int OrderStatus
}
Run Code Online (Sandbox Code Playgroud)
在jqgrid对象中,我显示除OrderStatus之外的所有属性
要求是创建一个具有的视图
在右侧面板中,用户将看到一个复选框列表,表示每个可能的OrderStatus值,并且他希望使用这两种方法进行搜索(例如,选中"已发货订单"复选框,然后使用大于某个值的金额过滤网格)
我已经multiplesearch:true在jqGrid对象中配置了高级过滤(),我可以创建组合字段和逻辑运算符的复杂过滤器.
有关如何在用户按下搜索按钮时从右侧面板提交数据的任何想法?
更新1:
序言:Oleg样品太棒了但不幸的是不符合我的客户要求:(
@Oleg:我不明白你为什么这么想:
如果数据位于网格之外,您将仅在选定行的右窗格中显示订单详细信息.因此,用户将不太了解数据.
也许我的描述不是那么清楚,但我不会显示任何订单细节.为了更好地阐明我的要求,我修改了您的示例,以显示所需的最终用户界面,如下图所示:

客户希望使用两种方法或两者同时过滤网格中的数据:
multiplesearch网格本身提供的设施(感谢提到的解决方法)从功能的角度来看,需求很容易表达:当用户单击复选框或使用本机进行搜索时,multiplesearch我应该将值发布到服务器,包括复选框状态.
总结一下,我应该:
multiplesearchmultiplesearch当用户单击复选框时添加当前状态(如果有)有没有办法做到这一点?
这是从社区已经完成有关分析Web应用程序方面的信息的经验中收集的.
几年前,我使用CORBA ORB在C++/Java的一个非常大的项目中工作,我们使用Rational Purify/CodeCoverage来检测,检测内存泄漏并发现服务器代码的瓶颈.从那时起,我没有任何使用.NET平台上的工具的经验,无论是使用纯c#还是使用Web应用程序
我知道这是一个非常大的话题.我所掌握的一些信息来自" Java Web站点的性能分析 "一书,该书是针对该平台的Java平台和参考工具,但它是一种可转移的方法,因此核心思想通常适用.
重命名数据库的正确步骤是什么?
示例:我有一个可以使用SQL Server Management Studio访问的数据库,其名称类似于"MyDatabase".这个数据库的物理文件是
如何将这些逻辑和物理名称重命名为"MyNewDatabase"?
谢谢你的帮助
您好我正在使用MVC 5和Entity Framework 6我的项目.我有一个如下图所示的模型:
我需要从一组Tag对象开始查询实体产品.请注意,Tagobject是一个抽象类,实际上是使用Table-Per-Entity策略继承映射的.
这是我的函数方法的签名
public IEnumerable<Product> SerachByTag( IEnumerable<Tag> tagList );
Run Code Online (Sandbox Code Playgroud)
在tagList参数中实际上会有具体的Tag实现实例.
我该如何进行此查询?
例如,我可以在输入中接收以下数据结构
[
{ tagType: 1, stringProperty: "abc" },
{ tagType: 2, intProperty: 9 }
]
Run Code Online (Sandbox Code Playgroud)
等等.哪种过滤产品更好?例如,我当然可以首先为每个标准应用产品列表,然后将这些结果交叉,如下例所示:
var p1 = ctx.Tags
.OfType<FirstTagType>()
.Where( x => x.StringProperty.Equals("abc") )
.Select( x => x.Products );
var p2 = ctx.Tags
.OfType<SecondTagType>()
.Where( x => x.IntProperty == 9 )
.Select( x => x.Products );
var results = p1.Intersect( p2 ); …Run Code Online (Sandbox Code Playgroud) 我试图让Uploadify与我的网站一起工作,但是我甚至在文件发送到服务器之前就得到了一个通用的"HTTP错误"(我说这是因为Fiddler没有向我的控制器显示任何发布请求.
我可以正确浏览要上传的文件.队列正确填充了要上载的文件,但是当我点击提交按钮时,队列中的元素变为红色并说出HTTP错误.
无论如何这是我的部分代码:
<% using ( Html.BeginForm( "Upload", "Document", FormMethod.Post, new { enctype = "multipart/form-data" } ) ) { %>
<link type="text/css" rel="Stylesheet" media="screen" href="/_assets/css/uploadify/uploadify.css" />
<script type="text/javascript" src="/_assets/js/uploadify/swfobject.js"></script>
<script type="text/javascript" src="/_assets/js/uploadify/jquery.uploadify.v2.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("[ID$=uploadTabs]").tabs();
var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>";
$('#fileInput').uploadify({
uploader: '/_assets/swf/uploadify.swf',
script: '/Document/Upload',
folder: '/_uploads',
cancelImg: '/_assets/images/cancel.png',
auto: false,
multi: false,
scriptData: { token: auth },
fileDesc: 'Any document type',
fileExt: '*.doc;*.docx;*.xls;*.xlsx;*.pdf',
sizeLimit: 5000000,
scriptAccess: 'always', //testing locally. comment before …Run Code Online (Sandbox Code Playgroud) 我可以用吗?
DBCC CHECKIDENT(<table_name>, RESEED, value)
Run Code Online (Sandbox Code Playgroud)
命令将标识列当前值重置为SQL Server 2008中的原始值?
如果是的话,这是正确的做法,没有任何缺点吗?如果没有,是否有另一种方法可以做到这一点?
我有一个控制器动作,通过使用ViewBag将Dictionary传递给视图.
public async Task<ActionResult> MyAction() {
Dictionary<ATypeViewModel, IEnumerable<BTypeViewModel>> all = await GetDictionary();
ViewBag.MyData = all;
return View();
}
Run Code Online (Sandbox Code Playgroud)
在视图内部,我需要使用此字典来创建级联单选按钮列表.第一个列表将包含键值
@{
Dictionary<ATypeViewModel, IEnumerable<BTypeViewModel>> services = ViewBag.MyData;
}
@foreach ( KeyValuePair<ATypeViewModel, IEnumerable<BTypeViewModel>> entry in services ) {
<div class="radio">
<label for="aType"><input type="radio" name="aType" value="@entry.Key.ATypeID" /> @entry.Key.Description</label>
</div>
}
Run Code Online (Sandbox Code Playgroud)
我需要jQuery来创建这个代码但不幸的是我不知道如何转换javascript使用的字典.
编辑:
在hutchonoid回答后,我使用Json.NET将我的字典序列化为json.
Dictionary<ATypeViewModel, IEnumerable<BTypeViewModel>> list = new Dictionary<ATypeViewModel, IEnumerable<ATypeViewModel>>();
[...]
return await JsonConvert.SerializeObjectAsync( list );
Run Code Online (Sandbox Code Playgroud)
然后在我的javascript代码中添加它
var collection = @Html.Raw( Json.Encode(services) );
Run Code Online (Sandbox Code Playgroud)
遗憾的是,序列化字符串不正确,因为它是以下形式
var collection = {
ATypeViewModel: [
{ BTypeID: 11, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使timout政策正常运行。集成api时,我有以下要求。
对于此任务,我想使用Polly,在我看来这是一个很棒的组件,可帮助处理瞬态故障。但是,由于我对这项技术还很陌生,所以我只想确定自己是否正确实施。
首先,我像这样用Polly创建了一个超时策略
var timeoutPolicy =
Policy.TimeoutAsync(
TimeSpan.FromSeconds( 20 ),
TimeoutStrategy.Optimistic,
async ( context, timespan, task ) => {
//write here the cancel request
} );
Run Code Online (Sandbox Code Playgroud)
然后,我准备执行该策略
var policyResult = await timeoutPolicy.ExecuteAndCaptureAsync( async () => {
//make here the request 1
} );
Run Code Online (Sandbox Code Playgroud)
我从文档中得到的是,如果在timeoutPolicy.ExecuteAndCaptureAsync委托内部发生了超时,则Polly会自动调用onTimeout委托。对?
但是我的问题是:
我有这个新的MVC应用程序,我已经安装在Windows 2008 Server上.并在运行localhost时收到以下消息.
我已经检查了Bin文件夹,并且可以确认Systems.Web.MVC在那里.该文件的版本是2.0.50217.0
在web.config中我定义了这个程序集,
任何人都可以帮忙吗?请参阅以下错误消息:
- - 错误信息 - - - - - - - - - - - - - - -
Server Error in '/' Application.
--------------------------------------------------------------------------------
Could not load file or assembly 'System.Web.Mvc' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×4
asp.net ×3
c# ×3
.net ×1
dictionary ×1
file-upload ×1
jqgrid ×1
polly ×1
profiling ×1
razor ×1
search ×1
sql-server ×1
uploadify ×1