我正在尝试使用ASP.Net的jQuery Datatables插件的服务器端功能.ajax请求返回有效的JSON,但表中没有任何内容.
我最初遇到的问题是我在ajax请求中发送的数据.我得到了"无效的JSON原始"错误.我发现数据需要使用字符串而不是JSON序列化,如本文所述:http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery- with-aspnet-ajax /.我不太确定如何解决这个问题,所以我尝试在ajax请求中添加它:
"data": "{'sEcho': '" + aoData.sEcho + "'}"
Run Code Online (Sandbox Code Playgroud)
如果上述内容最终有效,我稍后会添加其他参数.现在我只是想在桌子上看到一些东西.
返回的JSON看起来很好并且有效,但帖子中的sEcho是未定义的,我认为这就是为什么没有数据被加载到表中.
那么,我做错了什么?我是在正确的轨道还是我是愚蠢的?有没有人遇到过此或有任何建议?
这是我的jQuery:
$(document).ready(function()
{
$("#grid").dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bServerSide":true,
"sAjaxSource": "GridTest.asmx/ServerSideTest",
"fnServerData": function(sSource, aoData, fnCallback) {
$.ajax({
"type": "POST",
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"url": sSource,
"data": "{'sEcho': '" + aoData.sEcho + "'}",
"success": fnCallback
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<table id="grid">
<thead>
<tr>
<th>Last Name</th>
<th>First Name</th>
<th>UserID</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="5" class="dataTables_empty">Loading data from server</td>
</tr>
</tbody> …
Run Code Online (Sandbox Code Playgroud) 我们有一个包含名字和姓氏字段的表单.我被要求允许下划线.我不知道任何使用下划线的sql注入,但我也不知道有人在他们的名字中有下划线.是否有充分的理由允许或不允许名称中的下划线?
编辑:我正在使用参数和服务器端验证.这是通过jQuery验证插件进行客户端验证.
编辑2:我不是故意要讨论我是否应该进行任何验证......我只是想知道是否有任何令人信服的理由接受下划线,比如我应该接受爱尔兰人或连字符.基于此,我接受了奥伦的回答.
在我的web.config中的customErrors标记中,我指向一个控制器.在我的控制器中,我将重定向到由多个应用程序共享的外部错误页面.
<customErrors defaultRedirect="~/Error/ServerError" mode="On">
我的控制器:
public class ErrorController : Controller
{
public ActionResult ServerError()
{
return Redirect("/Systems/ASPNETErrorHandling/ErrorPage.aspx");
}
public ActionResult ErrorTest()
{
throw new Exception("testing error handling");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在调用Error/ErrorTest来测试错误处理.但它总是重定向到Views/Shared/Error.cshtml而不是重定向到我指定的控制器.
如何让asp.net mvc遵守customErrors设置中的defaultRedirect路径?
UDPATE:我还使用ELMAH并重写HandleErrorAttribute在描述这个职位.我从.Net Reflector看到,基础HandleErrorAttribute将Error设置为视图.我不认为我可以做很多事情,重定向到Error.cshtml,或其他一些视图.
error-handling asp.net-mvc custom-error-pages custom-errors asp.net-mvc-3
好的,我正在动态创建Asp.net验证控件并将它们插入更新面板.验证适用于IE和Firefox,但不适用于Chrome或Safari.
这是aspx文件.不要问为什么我没有使用按钮服务器控件...
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<input id="Button1" type="button" value="submit" onclick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "btnNext", true, "", "", false, true))' />
</ContentTemplate>
</asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)
这是后面的代码:
Dim Survey As New Survey
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Request("__EVENTARGUMENT") = "btnNext" Then
NextClick()
End If
Label1.Text = Date.Now.ToString
End Sub
Private Sub NextClick()
Survey.RenderPage(PlaceHolder1)
End Sub
Run Code Online (Sandbox Code Playgroud)
这是班级:
Public Class Survey
Public Sub RenderPage(ByVal PlaceHolder …
Run Code Online (Sandbox Code Playgroud) 我已经检查了SO上的每个帖子,互联网上的每个帖子,但没有任何帮助.
我正在验证viewstate MAC失败错误.它刚刚开始在我们的生产服务器上失败了.但它适用于我们的登台服务器,文件是相同的.我们发现我们的生产服务器有SP2,而登台服务器有SP1.
我们不在网络农场.我已将此机器密钥添加到web.config:
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
我还尝试了所有的解决方法:http: //blogs.msdn.com/tom/archive/2008/03/14/validation-of-viewstate-mac-failed-error.aspx.
还有一件事我应该提一下; 回发后不会发生这种情况.它发生在重定向之后.似乎我在互联网上看到的大多数情况发生在回发之后.不确定这是否与错误有关.
无论如何,有没有人有任何想法?
由于ASP.NET MVC仍处于测试阶段,是否可以在生产环境中使用它?
自从StackOverflow和许多其他网站使用它以来一定没问题吧?我一直想尝试一下,但我知道如果我提议在生产中实际使用它,我会得到阻力,因为它仍处于测试阶段.
我们目前以纯文本格式存储密码.其中一个原因是,当我们可以查找密码并登录帐户时,更容易解决帐户特定问题.这一直困扰着我,但如果我们开始散列密码,那么解决帐户特定问题的最佳方法是什么?这通常如何处理?
asp.net ×2
asp.net-mvc ×2
asp.net-2.0 ×1
asp.net-ajax ×1
datatables ×1
passwords ×1
security ×1
viewstate ×1
webforms ×1
whitelist ×1