を発生しません:私のコントローラがどのように見えるjQueryのは - 私は、次のjQueryのコードを持っているMVCコントローラのアクション
// When the document is ready, start firing our AJAX
$(document).ready(function() {
function showValues() {
var str = $("form").serialize();
$("#results").text(str);
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
//showValues();
// Bind actions...
$("#navIndex a").bind("click", function(e) { updateNavIndex($(this).attr('href')); });
$("#navPrevNext a").bind("click", function(e) { updateNavPrevNext($(this).attr('href')); });
$("#ItemsPerPage").bind("change", function(e) { updateAll(); });
$(":checkbox, :radio").bind("change", function(e) { updateAll(); });
$("#navIndex a").click(function() {
// switch class type...
$("#navIndex a").removeClass('selected');
$("#navIndex span").removeClass('selected');
$("#navIndex a").addClass('notselected');
$("#navIndex span").addClass('notselected');
$(this).removeClass('notselected');
$(this).addClass('selected');
$(this).parent().removeClass('notselected');
$(this).parent().addClass('selected');
// Get navigation index...
var navIndex = $(this).attr('href');
this.blur();
return true;
});
$("#navPrevNext a").click(function() {
// Get navigation index...
var navIndex = $(this).attr('href');
this.blur();
return true;
});
});
// Use the getJSON method to call our JsonResult action
var retrieveProductData = function(path, productGroup, productType, itemsPerPage, pageIndex, filter, fnHandleCallback) {
$.getJSON(path
, { productGroup: productGroup }
, { productType: productType }
, { itemsPerPage: itemsPerPage }
, { pageIndex: pageIndex }
, { filter: filter }
, function(data) { fnHandleCallback(data); });
};
// Use the getJSON method to call our JsonResult action
var retrieveMenuData = function(path, productGroup, productType, itemsPerPage, pageIndex, filter, fnHandleCallback) {
$.getJSON(path
, { productGroup: productGroup }
, { productType: productType }
, { itemsPerPage: itemsPerPage }
, { pageIndex: pageIndex }
, { filter: filter }
, function(data) { fnHandleCallback(data); });
};
// The path parameter is our JSON controller action
function updateNavIndex(pageIndex) {
var filters = $("form").serialize();
var productGroup = $("#valProductGroup").attr('title');
var productType = $("#valProductType").attr('title');
var itemsPerPage = $("#ItemsPerPage").val();
retrieveMenuData("/CatalogAjaxController/UpdateNavigation"
, productGroup
, productType
, itemsPerPage
, pageIndex
, filters
, handleMenuData);
retrieveProductData("/CatalogAjaxController/UpdateNavigation"
, productGroup
, productType
, itemsPerPage
, pageIndex
, filters
, handleProductData);
}
// The path parameter is our JSON controller action
function updateNavPrevNext(pageIndex) {
var filters = $("form").serialize();
var productGroup = $("#valProductGroup").attr('title');
var productType = $("#valProductType").attr('title');
var itemsPerPage = $("#ItemsPerPage").val();
retrieveMenuData("/CatalogAjaxController/UpdateNavigation"
, productGroup
, productType
, itemsPerPage
, pageIndex
, filters
, handleMenuData);
retrieveProductData("/CatalogAjaxController/UpdateNavigation"
, productGroup
, productType
, itemsPerPage
, pageIndex
, filters
, handleProductData);
}
// The path parameter is our JSON controller action
function updateAll() {
var filters = $("form").serialize();
var productGroup = $("#valProductGroup").attr('title');
var productType = $("#valProductType").attr('title');
var itemsPerPage = $("#ItemsPerPage").val();
retrieveMenuData("/CatalogAjaxController/UpdateNavigation"
, productGroup
, productType
, itemsPerPage
, pageIndex
, filters
, handleMenuData);
retrieveProductData("/CatalogAjaxController/UpdateProducts"
, productGroup
, productType
, itemsPerPage
, pageIndex
, filters
, handleProductData);
}
// Ok, now we have the JSON data, we need to do something with it. I'm adding it to another dropdown.
function handleMenuData(data) {
$("#otherDropDownId > option").remove();
for (d in data) {
var item = data[d];
$("#otherDropDownId").append("<option value=\"" + item.Value + "\">" + item.Text + "</option>");
}
}
// Ok, now we have the JSON data, we need to do something with it. I'm adding it to another dropdown.
function handleProductData(data) {
$("#otherDropDownId > option").remove();
for (d in data) {
var item = data[d];
$("#otherDropDownId").append("<option value=\"" + item.Value + "\">" + item.Text + "</option>");
}
}
:
public class CatalogAjaxController : Controller
{
[Authorize, AcceptVerbs(HttpVerbs.Post)]
public JsonResult UpdateNavigation(string productGroup, string productType, int itemsPerPage, string pageIndex, string filters)
{
int pIndex = Convert.ToInt32(pageIndex.Remove(0, 1));
ProductCatalogBrowserModel myModel;
myModel = new ProductCatalogBrowserModel(productGroup, productType, pIndex, itemsPerPage);
return new JsonResult() { Data = myModel.ProductDetailMenu.ToArray() };
}
[Authorize, AcceptVerbs(HttpVerbs.Post)]
public JsonResult UpdateProducts(string productGroup, string productType, int itemsPerPage, string pageIndex, string filters)
{
int pIndex = Convert.ToInt32(pageIndex.Remove(0, 1));
ProductCatalogBrowserModel myModel;
myModel = new ProductCatalogBrowserModel(productGroup, productType, pIndex, itemsPerPage);
return new JsonResult() { Data = myModel.ProductDetail.ToArray() };
}
}
私は3アップデート機能のいずれかにブレークポイントをキャッチすることができますJSスクリプトでは、コントローラにはまったくドロップされません。何か不足していますか?
[OK]を
あなたは、基本的なAjax呼び出しでこれを行うことができます。私は思う*私は理解するが、この呼び出しをどこに置くべきか正確には分からない。私はそれが "var retrieveXYZ"定義に入るはずだと推測していますか? –
あなたのコードを見ると、私はそう言うでしょう。$ .ajax()呼び出しはあなたの異なる検索関数に入ります。 –
"タイプは不明"というエラーが出ています。これは私の検索コードで行ったことです: var retrieveMenuData = function(パス、productGroup、productType、itemsPerPage、pageIndex、filter、fnHandleCallback){ $ .ajax(パス 、タイプ 、{productGroup:productGroup、productType:productType 、itemsPerPage:itemsPerPage、pageIndex:pageIndex、filter:filter} 、関数(データ){fnHandleCallback(データ);}); }; その後、私の更新方法で私が持っている:retrieveMenuData( "/ CatalogAjaxController/UpdateNavigation" 、 "ポスト" 、{ "productGroup" :productGroup は、 "でProductType":。でProductType ... –