Reputation: 23
While debugging the code, I see that the Edit action is performed, but the URL remains unchanged and there is no navigation to the new Index view. I also tried to handle the form submission via JavaScript, but after saving the Java Script code was not executed.
Controller.cs:
[HttpGet("/ZahtevaZaReaktivacijo/[controller]/[action]/{zahtevaId}")]
public async Task<IActionResult> Edit(int zahtevaId)
{
ZahtevaZaReaktivacijoInfo? zahtevaInfo;
zahtevaInfo = await _zahtevaService.GetZahtevaZaReaktivacijoInfoById(zahtevaId);
if (zahtevaInfo == null)
{
return NotFound();
}
return PartialView("_Index", zahtevaInfo);
}
[HttpPost]
public async Task<IActionResult> Save(ZahtevaZaReaktivacijoInfo zahtevaZaReaktivacijoInfo)
{
ArgumentNullException.ThrowIfNull(zahtevaZaReaktivacijoInfo);
if (!ModelState.IsValid)
{
return PartialView("_Index", zahtevaZaReaktivacijoInfo);
}
try
{
int newId = await zahtevaService.NovaZahteva(zahtevaZaReaktivacijoInfo);
ViewData["NotifySaveSuccessText"] = ResourceUI.UI_Message_Saved; // Sporočimo na UX, da je uspešno shranjeno
if (newId > 0)
{
return RedirectToAction("Edit", new { zahtevaId = newId });
}
}
catch (Exception ex)
{
ModelState.AddModelError("ModelException", ExceptionHandler.HandleModelException(ex));
Log.ForContext(typeof(PodruznicaController)).Error(ex, ex.Message);
}
return PartialView("_Index", zahtevaZaReaktivacijoInfo);
}
Index.cshtml:
@model ZahtevaZaReaktivacijoInfo
@{
string tabContentId = "EditZadeva_" + Model.ZahtevaId;
string urlFormAction = "Save";
string urlClose = Url.Content("~/");
bool isDodajanje = Model.ZahtevaId == 0;
bool isFormLocked = true;
string isReadonly = isDodajanje ? "" : "form-lockable-item";
}
<div id="@tabContentId" class=" ">
<div class="row">
<div class="col-12">
<!-- .card-body -->
<div class="card-body p-2">
<form id="@(tabContentId)form"
asp-action="@urlFormAction"
data-urlclose="@urlClose"
method="post"
rrc-change-checker="true"
class="form-lockable">
<input type="hidden" asp-for="EnotaId" />
<input type="hidden" asp-for="ZahtevaId" />
<input type="hidden" asp-for="SysRowversion" />
<div class=" ">
<partial name="_ValidationSummaryPartial" model="Model" view-data="ViewData" />
</div>
<div class="section-block">
<div class="h6 text-uppercase">PODATKI O ZAHTEVI ZA REAKTIVACIJO</div>
<!-- .card -->
<div class="card mx-0">
<!-- .card-body -->
<div class="card-body p-2 pr-3 col-12 resize-section">
<div class="form-group row">
<label asp-for="RazlogZahteveId"
rrc-required-css-class="model-required"
class="control-label col-sm-5">
</label>
<input asp-for="RazlogZahteveId"
class="form-control col-sm-7 @isReadonly"
kendo-type="kendoDropDownList"
kendo-filter="contains"
kendo-api="@Url.Content("~/api/Sifrant/SifrantByVrstaIdDropdownList/" + SifrantVrsta.RazlogZahteveZaReaktivacijo.Id)">
</div>
</div><!-- /.card-body -->
</div><!-- /.card- -->
</div><!-- /.section-block- -->
<div class="card-divider"></div>
<div class="section-block d-flex">
@* form buttons *@
<button type="submit" class="form-save btn btn-primary ml-auto"><i class="fa-light fa-save fa-lg mr-1"></i> @ResourceUI.UI_Form_Button_Save</button>
<button type="button" class="form-close-up1level2parameters btn btn-secondary ml-2"><i class="fa-light fa-arrow-left-to-line fa-lg mr-1"></i> @ResourceUI.UI_Form_Button_Exit</button>
</div>
</form>
</div> <!-- ./card-bod -->
</div> <!-- ./card -->
</div> <!-- ./section-block -->
</div> <!-- ./row tabContentId -->
<script>
$(document).ready(function () {
kendoHelper.genericComponents.bind("#@tabContentId"); // bind generic kendo elements
changeChecker.init("#@tabContentId"); // bind User notification on form change
asyncFormHandler.init("#@tabContentId"); // bind Form submit events
asyncFormHandler.enableOrDisableForm("#@tabContentId", '@(isFormLocked)');
$('#EditZadeva_3form').closest('.tab-pane').attr('id')
$('#EditZadeva_3form').closest('.tabs-container').find('a[href="#Zahteva"]')
showValueChangeAlert.init("#@tabContentId");
});
</script>
Route config:
// Route configuration
app.MapControllerRoute(
name: "defaultArea",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Any suggestions what is wrong?
Upvotes: 0
Views: 94