Asp.net mvc 4 您应该返回什么ActionResult来更新ActionLink文本?
我将MVC4与实体框架结合使用,和许多人一样,我是MVC新手,试图了解设计模式 我有一个局部视图,显示会话列表,后面是ActionLink,允许经过身份验证的成员预订会话 注意:为了清楚起见,我删掉了大部分代码,如果一个成员被预订到一个会话中,它会显示“预订”而不是操作链接Asp.net mvc 4 您应该返回什么ActionResult来更新ActionLink文本?,asp.net-mvc-4,Asp.net Mvc 4,我将MVC4与实体框架结合使用,和许多人一样,我是MVC新手,试图了解设计模式 我有一个局部视图,显示会话列表,后面是ActionLink,允许经过身份验证的成员预订会话 注意:为了清楚起见,我删掉了大部分代码,如果一个成员被预订到一个会话中,它会显示“预订”而不是操作链接 @using OnlineBookings.Website.Models @{ DateTime currentDate = DateTime.MinValue.Date; } <form method="post"
@using OnlineBookings.Website.Models
@{ DateTime currentDate = DateTime.MinValue.Date; }
<form method="post" action="~/Controllers/BookSessionController.cs">
@foreach (SessionsWithBookingInformation s in Model)
{
<p>@s.StartTime.ToString("t")
@s.Description
@Html.ActionLink(
"Book",
"BookSession",
new { sessionId = s.SessionId }
)
</p>
}
</form>
所有这些都很好地工作,预订被有效地记录下来
但是,我想弄清楚的是,BookSession
函数的返回是否可以更新actionlink文本
理想情况下,如果成功,我想用“预订”一词替换部分视图中的ActionLink,如果失败,我想用“会话已满”之类的失败条件替换它
或者我可以只更新我的局部视图,因为这会做同样的事情
我是不是错过了一些简单的东西?或者,我是不是找错人了?你的问题很好,解释得很好,但也有点模糊,因为这是一个有点“我该怎么做?”的问题。以下是一些可能帮助您开发解决方案的选项
return View();
span
或类似HTML元素上添加id
标记,其中包含个人预订的详细信息。使用AJAX提交请求,可能通过@AJAX.ActionLink
,并让您的操作返回部分视图
return PartialView("_OnlineBookingPartial", model);
返回部分视图后,使用返回的数据更新特定预订Book
替换为的文本;i、 e.“会话已满”或“已预订!”
@Ajax.ActionLink
并检查请求是否在您的控制器操作中来完成
if (Request.IsAjaxRequest) {
return PartialView("_OnlineBookingPartial", model);
}
return View();
这意味着,如果浏览器启用了Javascript并支持AJAX,那么将使用它,整个过程对于用户来说将是无缝和即时的。如果禁用Javascript,页面将只刷新。谢谢Rowan,我同意这确实是一个“从这里到哪里”的问题。我将重构并尝试一下:)
return new JsonResult
{
Data = "Booked!"
}
if (Request.IsAjaxRequest) {
return PartialView("_OnlineBookingPartial", model);
}
return View();