Я выполнил шаги в потенциально дублирующем вопросе, и это не помогло решить мою ошибку.
При загрузке на сервер все приложение работает правильно, за исключением одной кнопки.
Кнопка представляет собой простую кнопку с идентификатором.Когда я щелкаю по нему, функция ловит щелчок, захватывает связанные данные из полей ввода пользователя, отправляет их в контроллер, и данные сохраняются в базе данных.
Когда я загружаю на сервер, всеостальное на сайте работает отлично.Однако эта одна кнопка выдает ошибку 404. При попытке найти действие контроллера.
Вот кнопка:
<input type="button" id="btnAdd" value="Add" class="btn btn-primary" />
Сценарий, который вызывает действие контроллера:
$(function () {
$("#btnAdd").click(function () {
//snipped for brevity
//Send the records to server for saving to database.
$.ajax({
type: "POST",
url: "/Designees/InsertDesg",
data: '{FnameD: "' + txtFnameD.val() + '",LnameD: "' + txtLnameD.val() + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
$("#txtLandownerID").val(r.LandownerID);
$("#txtPermitNo").val(r.PermitNo);
$("#txtExpYear").val(r.ExpYear);
//Add the Name value to first cell.
SetValue(row, 2, txtFnameD);
SetValue(row, 3, txtLnameD);
//Add the row to the WebGrid.
webGrid.append(row);
window.location.href = r.Url;
}
});
});
Действие контроллера:
[HttpPost]
public JsonResult InsertDesg(Designee designee)
{
designee.CreatedDate = System.DateTime.Now;
designee.ModifiedDate = System.DateTime.Now;
var user = context.Users.SingleOrDefault(u => u.BhCode == User.Identity.Name);
designee.EnteredBy = user.Id;
db.Designees.Add(designee);
db.SaveChanges();
var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Designees", new { id = designee.LandownerID, permit = designee.PermitNo, year = designee.ExpYear });
return Json(new { Url = redirectUrl, designee });
}
Мои локальные результаты:
Результаты моего сервера:
Я ожидаю, что на сервере произойдет то же самое, что и в моей локальной системе.Кто-нибудь может придумать решение?Мои журналы IIS не показывают ничего, кроме ошибки 404.
РЕШЕНИЕ
Я понятия не имею, почему это исправило это, но я изменил свой вызов функции из приведенного вышек ниже, и теперь он работает правильно:
var RootUrl = '@Url.Content("~/")';
//Send the records to server for saving to database.
$.ajax({
type: "POST",
url: RootUrl + "Designees/InsertDesg",