我在很多地方視圖下多次的代碼塊:寫一個jQuery函數在asp.net mvc的觀點來代替重複的代碼
$.get('@Url.Action("ActionOne", "Home")',
{ masterContractItemId: masterContractItemId },
function(result) {
$('#addSubContractItemModal .modal-body').html(result);
$('#addSubContractItemModal').modal('show');
}).done(function() {
$("#addSubContractItemModal .datepicker").datepicker();
$('#addSubContractItemModal .chzn-select').chosen({ search_contains: true, width: '70px' });
createBootstrapSuccessMessage("Some text here", "#addSubContractItemModal #message");
});
這:
$.get('@Url.Action("ActionTwo", "Home")',
{ contractItemId: contractItemId },
function(result) {
$('#addContractItemModal .modal-body').html(result);
$('#addContractItemModal').modal('show');
}).done(function() {
$("#addContractItemModal .datepicker").datepicker();
$('#addContractItemModal .chzn-select').chosen({ search_contains: true, width: '70px' });
createBootstrapSuccessMessage("Some another text here", "#addContractItemModal #message");
});
我想要做的是編寫一個函數,我將傳遞actionName,parameterName,parameterValue,modalName和messsageText來調用這些代碼行中的函數。
你能幫忙嗎?
ADD:我寫了下面的方法:
function RenderModalWindow(actionName, parameterName, parameterValue, modalId, messageText) {
var url = '/Area/Home/' + actionName + '?' + parameterName + '=' + parameterValue;
$.get(url,
function(result) {
$(modalId + ' .modal-body').html(result);
$(modalId).modal('show');
}).done(function() {
$(modalId + " .datepicker").datepicker();
$(modalId + ' .chzn-select').chosen({ search_contains: true, width: '70px' });
createBootstrapSuccessMessage(messageText, modalId + " #message");
});
}
然後我調用它的腳本:
RenderModalWindow("AddCategoryForContractItem", "masterContractItemId", masterContractItemId, "#addSubContractItemModal", "Text message here!");
但得到了一個錯誤: 本地主機/地區/主頁/ AddCategoryForContractItem? masterContractItemId = 19669 404(Not Found)
但是我有控制器中的目標方法:
public ActionResult AddCategoryForContractItem(int masterContractItemId)
我投票結束這個問題作爲題外話,因爲要求爲某個目的編寫代碼是脫離主題。爲此付出了一些努力。分享代碼。即使這是一個非常糟糕的代碼,沒有人會責怪你。但你的努力是非常重要的 –
我編輯我的答案,因爲我試圖自己做 –