В моем проекте ASP.Net я пытаюсь перенаправить страницу на другое действие после выбора таблицы строк и нажать на кнопку. Поэтому у меня есть этот код:Перенаправить действие с параметрами в JQuery
JQuery:
function editItem(tableId, url) {
if ($("#" + tableId + " .selected").exists()) {
var thisRowId = $("#" + tableId + " .selected").attr("id");
window.location.replace(url, { operation: "edit", carId: thisRowId });
}
};
//more code
View (ManagementCar):
@model myProject.Model.Car.Car[]
<table class="table" id="tableCars">
<thead>
@*some code to header*@
</thead>
<tbody>
foreach (var item in Model)
{
<tr id="@(item.Id)" onclick="selectRow('tableCars', '@(item.Id)')">
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.OwnerName)
</td>
<td>
@(item.IsSold == true ? "Yes" : "No")
</td>
</tr>
}
</tbody>
</table>
<br />
<button id="btEdit" type="button" class="disable" onclick="editItem('tableCars','CarOperation')">
Edit</button>
Контроллер:
[HttpGet]
public ActionResult CarOperation(string operation, int carId)
{
//some code...
return RedirectToAction("ManagementCar", "Backoffice");
}
Но у меня есть Ошибка сервера после перенаправления, указав параметр carId равным нулю. Я отлаживаю свой jquery, и этот параметр не равен нулю. Я пытался также делать
$.get(url, { operation: "edit", carId: thisRowId });
вместо
window.location.replace(url, { operation: "edit", carId: thisRowId });
но не перенаправлять. Как я могу это решить?
Отлично! Наконец, это работает! Огромное спасибо! – Ninita
Извините, на самом деле у меня есть ошибка.Он перенаправляет меня на неопределенную страницу, например: 'https: // localhost/myProject/Backoffice/undefined'. Я не понимаю, почему ...? – Ninita
Функция замены javascript занимает 2 строки в качестве параметров. вы передаете объект json по второму параметру. http://www.w3schools.com/jsref/jsref_replace.asp –