Я использую частичные просмотры на каждой вкладке. У меня есть 3 вкладки.MVC tabs save partialview
После того, как я выбрал вкладку, как отправить форму в частичном просмотре и оставить ее на той же вкладке после отправки на контроллер? Я просто хочу обновить частичное представление после сохранения и, надеюсь, не всю страницу.
Контроллер порядка
public ActionResult order()
{
return View();
}
order.cshtml
<div id="tabs">
<ul class="nav nav-tabs">
<li class="active"><a href="#tabs-1">General</a></li>
<li><a href="#tabs-2">Item</a></li>
<li><a href="#tabs-3">Total</a></li>
</ul>
<div id="tabs-1">
@{Html.RenderPartial("_Partial_General_Tab");}
</div>
<div id="tabs-2">
@{Html.RenderPartial("_Partial_Item_Tab");}
</div>
<div id="tabs-3">
Content for Tab 3 goes here.<br />
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#tabs").tabs();
});
</script>
_Partial_General_Tab.cshtml
@model Mvc5.Models.ORDERMetadata
@using (Html.BeginForm("Edit", "Order"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
// Set New Order Number
@Html.HiddenFor(model => model.Order_Number, new { @Value = ordernumber })
@Html.TextBoxFor(model => model.Order_Date})
<button id="editorder" type="submit">Save</button>
}
_Partial_Item_Tab.cshtml
@model Mvc5.Models.ORDER_DETAILSMetadata
@using (Html.BeginForm("Item", "Order"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
// Set New Order Number
@Html.HiddenFor(model => model.Order_Number, new { @Value = ordernumber })
@Html.TextBoxFor(model => model.Item})
<button id="edititem" type="submit">Save</button>
}
Edit Controller
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(ORDERMetadata model)
{
try
{
// update order
return RedirectToAction("order"); //<----- Is this correct redirecting?????
}
}
Пункт Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Item(ORDER_DETAILSMetadata model)
{
try
{
// update order
return RedirectToAction("order"); //<----- Is this correct redirecting, do I need to pass what tab it is on?????
}
}
, то вы должны использовать Ajax для этого. –