Ungültiges Postback- oder Callback-Argument. Bei Dropdown-Liste wird mit jquery aufgefüllt und es gibt ein Postback
Ich habe zwei Dropdown-Listenfelder beim Ändern des ersten, ich möchte das zweite ausfüllen. Ich habe eine Frage dazu wie folgt geschrieben
function BindModel() {
var makeCode = $('#ddMake').val();
var ddModel = $("#ddModel");
if (makeCode == "0") {
return false;
}
else {
$("#loading").show();
$.ajax({
type: "POST",
url: "Services/GetModels.ashx",
data: { 'makeCode': makeCode },
success: function (data) {
$("#loading").hide();
$.each(data, function () {
ddModel.append($("<option />").val(this.ModelCode).text(this.ModelName));
});
},
error: function () {
$("#loading").hide();
}
});
}
}
Ich habe einen generischen http-Handler wie folgt
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;
if( context.Request["makeCode"]!=null)
{
var makeCode = context.Request["makeCode"].Trim();
var lobjSearchProps = new CSearchAllProps
{
SearchValue = "%",
MakeCode = makeCode
};
var allModelProps = new CModelRestrictionLogic().GetModels(lobjSearchProps).ToList();
context.Response.Write(JSONHelper.GetJSON(allModelProps));
}
Dabei ist CModelRestrictionLogic (). GetModels (lobjSearchProps) meine Funktion, die Daten aus der Datenbank abruft.
und CModelRestrictionLogic (). GetModels (lobjSearchProps) konvertiert die Liste in Jason.
Alles funktioniert gut. Aber wann immer ich zurückschicke, gibt es einen Fehler
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Ich kenne den Grund, weil ich die Dropdown-Liste von jquery ausgefüllt habe, damit ein Fehler angezeigt wird.
Ich habe auch Funktion auf Init geschrieben, um die Daten von zurückgebrachten Werten wie folgt zu füllen
protected override void OnInit(EventArgs e)
{
var postedOptionValue = Request.Form[ddModel.UniqueID];
ddModel.Items.Add(new ListItem(postedOptionValue));
base.OnInit(e);
}
Wie kann ich diesen Wert loswerden. Ich möchte enableEventValidation = "false" nicht verwenden, da dies ein Sicherheitsrisiko darstellt.
Freundlich helfen.