【发布时间】:2020-03-21 16:48:50
【问题描述】:
我的控制器有问题 - 它没有返回视图。我正在向同一个控制器发送一些数据,用这些数据创建一个新对象,我想将此对象发送到 Create 视图,但由于某种原因,我停留在同一页面上。
- 查看名称:
Create.cshtml - 控制器名称:
ReservationController
这是我的控制器操作:
public IActionResult Create(int selectedTime, string selectedDate, int selectedRoomId)
{
TimeSpan time = TimeSpan.Parse($"{selectedTime}:00:00");
DateTime date = DateTime.ParseExact(selectedDate, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);
DateTime combine = date + time;
Reservation reservation = new Reservation();
reservation.RoomId = selectedRoomId;
reservation.ReservationTime = combine;
return View(reservation);
}
我的看法:
@model Escape.Models.Reservation
@{
ViewBag.Title = "title";
}
<h2>My create reservation view</h2>
这是我来自的原始视图:
@using Escape.Controllers
@model Escape.Models.Room
@{
ViewData["Title"] = "Details";
}
<h4 class="title">Booking for room: @Model.Name</h4>
<div>
<p>@Model.Description</p>
<a class="btn btn-link" asp-action="Index">Back to all rooms</a>
<hr />
</div>
<div>
<input id="datepicker" type="text" name="datepicker"
onchange="onDateChange(@Model.Id)" />
</div>
<div>
<div id="displayTimes"></div>
<a id="btn-create" class="btn btn-sm"></a>
</div>
@section Scripts {
<script>
var dateToday = new Date();
$(function () {
$("#datepicker").datepicker({
minDate: dateToday
});
});
</script>
}
我的 btn-create 上的 Ajax 功能:
function onButtonClick(val, date, room) {
var btnBack = document.getElementById("btn-create");
btnBack.innerHTML = "Create reservation";
$(btnBack).addClass('btn-outline-primary');
btnBack.addEventListener("click",
function () {
$.ajax({
type: "GET",
data: { selectedTime: val, selectedDate: date, selectedRoomId: room },
url: "/Reservation/Create",
contentType: "application/json",
dataType: "json"
});
});
}
【问题讨论】:
-
当您说您停留在同一页面上时,您调用此方法的视图是什么?
-
我们需要一个完全可重现的例子。我们需要查看原始视图以及您用于导航到其他视图的链接或表单等。
-
我编辑了我的问题 - 添加了原始视图。
-
在返回视图之前你看到了什么设置断点?
标签: asp.net-core