我不想阻止用户多次点击相同的ajax按钮,但我想要进行一些控制以防止有人恶意地反复点击按钮,这会导致重复的数据库请求.什么是在asp.net mvc中的jquery .post上处理这个的简单方法?如果我拖延时间,体验客户端将被破坏(?)
大家早上好,
我敢肯定这是一个给我,但我不知道这个问题来自哪里.
我在视图中有以下几行:
<fieldset>
<dl>
<dt>
<label for="FormTypes">Form Type:</label>
</dt>
<dd>
<% =Html.DropDownList("FormTypes", "All") %>
</dd>
</dl>
</fieldset>
<fieldset>
<dl>
<dt>
<label for="Parts">Form Part:</label>
</dt>
<dd>
<% =Html.DropDownList("Parts", "All") %>
</dd>
</dl>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
这不会导致任何问题,但是当根据表单类型的选择将以下脚本添加到顶部以更新部件时(在回答此SO问题之后) 在Asp.Net中使用JQuery绑定DropDownlists)
<script type="text/javascript">
<!--
$('#FormTypes').change(function() {
var val = $(this).val();
$parts = $('#Parts');
$.ajax({
url: '<%= Url.Action('FormParts') %>',
dataType: 'json',
data: { ID: val },
success: function(parts) {
$.each(parts, function(i, part) {
$parts.append('option value="' + part.ID+ '">' + part.Code + '</option>');
});
},
error: function() …Run Code Online (Sandbox Code Playgroud) 我正在使用C#,AJAX和JSON进行一些工作,并且我得到了自我引用循环错误.我正在设法使用JsonIgnore属性解决这个问题,但我想知道是否有人可以给我一个关于这里实际发生的事情的正确解释.
非常感谢.
戴夫
我无法使用ModalPopupExtender获取我的面板弹出窗口.这是代码
.modalBackground
{
background-color:#CCCCFF;
filter:alpha(opacity=40);
display:none;
opacity:0.5;
}
.ModalWindow
{
border: solid1px#c0c0c0;
background:#f0f0f0;
padding: 0px 10px 10px 10px;
position:absolute;
top:-1000px;
left:-1000;
}
Run Code Online (Sandbox Code Playgroud)
和代码:
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="panEdit" runat="server" Height="180px" Width="400px" CssClass="modalBackground">
Content goes here
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</asp:Panel>
<asp:LinkButton runat="server" ID="btnPopup" Text="pop" />
<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" RepositionMode="RepositionOnWindowResize"
TargetControlID="btnPopup" PopupControlID="panEdit" BackgroundCssClass="modalBackground"
CancelControlID="btnCancel">
</asp:ModalPopupExtender>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
当我点击btnPopup时,没有任何反应.任何的想法?
好吧,我有3个LinkButton
<asp:LinkButton ID="lnkEdit" runat="server" Text="Edit Record" OnClientClick='ControlVisible();'/>
<asp:LinkButton ID="lnkSave" runat="server" Text="Save" Visible="false" />
<asp:LinkButton ID="lnkCancel" runat="server" Text="Cancel" Visible="false" />
Run Code Online (Sandbox Code Playgroud)
当我点击lnkEdit按钮lnkSave和lnkCancel按钮必须是不可见的
<script language="javascript" type="text/javascript">
function ControlVisible() {
var Edit = document.getElementById("lnkEdit");
var Save = document.getElementById("lnkSave");
var Cancel = document.getElementById("lnkCancel");
Edit.visible = false;
Save.visible = true;
Cancel.visible = true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是当我将cLick Edit LinkButton:var Edit = document.getElementById("lnkEdit"); 这里来了Null,无法检索Control的ID
什么问题?
我正在尝试使用ASP.NET AJAX的客户端框架找到一棵树.在DOM准备好之后,我还使用jQuery来执行任何JavaScript操作.我的代码是这样的:
$(function(){
var tree = $find('treeId');
});
Run Code Online (Sandbox Code Playgroud)
这里,树只是空.但是当我尝试在点击其中一个元素时找到树时,它不是空的:
$(function(){
$('saveButton').click(function(){
var tree = $find('treeId');
}):
});
Run Code Online (Sandbox Code Playgroud) 我在C#中有以下内容:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<span id="header" class="hideMe">
(other irrelevant tags and controls)
</span>
<div>
(other irrelevant tags and controls)
</div>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSubmit" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
以下是jQuery
if ($) {
$(document).ready(function () {
$('#header').click(function ($e) {
if ($(this).hasClass('hideMe')) {
$('#header').removeClass('hideMe');
$('#header').addClass('showMe');
}
else {
$('#header').removeClass('showMe');
$('#header').addClass('hideMe');
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
jQuery工作正常(即 - 如果我点击标题范围并且hideMe类是当前的那么它将删除hideMe并添加showMe,反之亦然).
但是,当我单击btnSubmit时,会发生异步回发并导致标题范围重置为其原始状态(应用hideMe类).
如何让标题范围保持在单击提交按钮时的状态,并且不会恢复到页面加载时的状态?
这是我的代码(下面的问题):
视图
// This function is called by another function when radioButtonGroup.change().
var requestValues = function (form) {
var option = form.find("input:radio:checked").attr("value");
// This seemingly shows the correct url for the action method desired.
alert("Form Action: " + form[0].action + "\nForm Method: " + form[0].method);
if (form.valid()) {
$.ajax({
url: form[0].action,
type: form[0].method,
data: option,
success: function (result) {
alert("Had success.");
$('#createForm').replaceWith(result);
},
error: function (xhr) {
alert("An error occurred: " + xhr.status + " " + xhr.statusText);
}
}); …Run Code Online (Sandbox Code Playgroud) asp.net-mvc jquery asp.net-ajax http-status-code-404 asp.net-mvc-3
该页面包含折叠控制,可以对点击进行扩展和收缩.当它扩展时,它应该显示数据库中的记录.我第一次打开页面时工作正常.但是刷新失败了.这在IE中运行良好,仅与Firefox有关.在Firefox中刷新它的失败.我尝试在页面加载时给"hPanelLoaded"赋值为"FALSE".仍然没有工作.似乎刷新FF无法获得"hPanelLoaded"的值,并且它说"$("hPanelLoaded")为null".
这是页面结构.MainPage.aspx正在调用Control> hPanelLoaded.ascx正在调用> hPanelLoaded.js.
知道我在做什么错.
这是代码
@@@@@@@@@@这是在hPanelLoaded.ascx中.@@@@@@@@@@@
<input type="hidden" id="hPanelLoaded" />
Run Code Online (Sandbox Code Playgroud)
@@@@@@@@@@这是在hPanelLoaded.js中.@@@@@@@@@@@
function loadPanel1() {
try {
if ($('hPanelLoaded').value != 'TRUE') {
grdarts.callback();
$('hPanelLoaded').value = 'TRUE'
}
// else {
// alert('INSIDE ELSE');
// $('hPanelLoaded').value = 'FALSE';
// }
}
Run Code Online (Sandbox Code Playgroud) 我有注册表格和按钮.OnClick - 我在服务器端调用函数,它使用Zipcodes在Database上验证用户的邮政编码.如果验证成功通过 - 用户的数据存储在数据库中(这里我继续使用服务器功能).但是如果ZipCode不匹配 - 我调用Javascript函数,我问用户是否仍想将他的数据保存到DB.如果是 - 我使用Ajax请求保存它.问题是当我调用Javascript函数时 - 首先它应该在客户端接收用户的数据.但是当读取数据时 - 我收到错误"无法获取未定义或空引用的属性值".但是用户的数据仍然存在于表单的字段中.似乎服务器从表单中读取的数据一次 - 重置某处 - 并且无法在客户端上第二次读取.这是我的ASP表格
<body>
<form id="frmZipValidation" runat="server">
<div>
<asp:Label runat="server">Registration Form</asp:Label>
<asp:TextBox runat="server" ID="txtbxName"></asp:TextBox>
<asp:TextBox runat="server" ID="txtbxZipCode"></asp:TextBox>
<asp:DropDownList runat="server" ID="DDLCountry">
<asp:ListItem Text="Select country" Value="Select" Selected="True"></asp:ListItem>
<asp:ListItem Text="USA" Value="USA"></asp:ListItem>
<asp:ListItem Text="Canada" Value="Canada"></asp:ListItem>
</asp:DropDownList>
<asp:TextBox runat="server" ID="txtbxState"></asp:TextBox>
<asp:TextBox runat="server" ID="txtbxCity"></asp:TextBox>
<asp:Button runat="server" ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Click"/>
</div>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
这是我的服务器端
public partial class Default : System.Web.UI.Page
{
string Name;
string ZipCode;
string Country;
string State;
string City;
bool IsMatch; …Run Code Online (Sandbox Code Playgroud) 这是我的Action Mehtod
public JsonResult GetById(IEnumerable<Guid> idList)
{
//.....
}
Run Code Online (Sandbox Code Playgroud)
还有我的JavaScript.我正在使用li元素的id属性创建一个字符串数组
var idArr = [];
var list = $("#ulApplications li");
$.each(list, function () { idArr.push($(this).attr("id")) });
$.ajax(
{
type: "GET",
url: "/rolemanagement/application/GetById/",
contentType: false,
datatype: "json",
data: { 'idList': idArr },
success:........
Run Code Online (Sandbox Code Playgroud)
在我的Action方法中,我没有得到任何数据.我好像错过了什么.谢谢
首先,我不知道Ajax设置中的传统方法,其次,是否有任何需要在ASP MVC中将其设置为true的情况?
根据名称,我相信它很快就会贬值?不是吗?
如果你能帮助我,我会很高兴。我在 Page_Load 中获取应来自 AJAX 请求的数据时遇到问题。我做了一个 AJAX 请求:
$.post({
url: 'pdf.aspx',
//data: { ID: '1833' },
data: 'id=1833',
dataType: 'text',
type: 'post',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
success: function (data, textStatus, jQxhr) {
console.log("sssss " + data);
},
failure: function (msg) {
console.log("fffff " + msg);
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
Run Code Online (Sandbox Code Playgroud)
我有后面的代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
Dim ID = Request.Form("id")
Response.Write(ID)
End Sub
Run Code Online (Sandbox Code Playgroud)
结果我什么也没得到 ID 变量。我尝试了所有可能的选择,但仍然有问题。有任何想法吗?谢谢您的任何答复!
asp.net-ajax ×13
jquery ×8
asp.net ×7
asp.net-mvc ×5
javascript ×4
ajax ×3
c# ×2
css ×1
json ×1
vb.net ×1