Я новичок в Ap. net core MVC Я нахожусь в середине проекта .. Я пытаюсь создать URL-адрес, используя jquery и передать это значение контроллеру при отправке формы .. Я вижу значение отображается после того, как я выполняю функцию при нажатии кнопки. Я использую загрузку частичного представления в раскрывающемся списке, используя jquery, я могу заполнить его, а также присвоить значение текстовому полю. Но когда я пытаюсь получить доступ к тому же в контроллере, я не могу найти его ниже, это мой полный код. Я могу получить доступ ко всем остальным значениям, кроме значения текстового поля, значение которого устанавливается через jquery
Ниже приведен мой вид
<form method="post" asp-action="Upsert" enctype="multipart/form-data">
<div class="row px-2 mx-2 backgroundWhite border">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
@if (Model.NavId != 0)
{
<input type="hidden" asp-for="NavId" />
title = "Edit Navigation";
}
<div class="col-12">
<h2 class="text-primary">@title</h2>
<hr class="my-4">
</div>
<div class="col-8">
<div class="form-group row">
<div class="col-5">
<label asp-for="Title"></label>
</div>
<div class="col-7">
<input asp-for="Title" class="form-control" />
<span asp-validation-for="Title" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<div class="col-5">
<label asp-for="Position"></label>
</div>
<div class="col-7">
<input asp-for="Position" class="form-control" />
<span asp-validation-for="Position" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<div class="col-5">
<label asp-for="NavigateUrl">NavigationUrl</label>
</div>
<div class="col-7">
<input asp-for="NavigateUrl" disabled id="NavigateUrl" name="NavigateUrl" class="form-control" style="color:#000 !important"/>
<span asp-validation-for="NavigateUrl" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<div class="col-5">
<label>Select Page</label>
</div>
<div class="col-7">
<select id="SelectPage" class="form-control">
<option value="-">Select Page</option>
<option value="Products">Products</option>
<option value="ProductDetails">Product Details</option>
</select>
</div>
</div>
</div>
<div class="col-12 selectDiv mt-2 mb-2">
</div>
<div class="form-group row col-8">
<div class="col-12 offset-4">
@if (Model.NavId != 0)
{
//Edit button and back to list
<partial name="_EditAndBackToListButton" model="Model.NavId" />
}
else
{
//Create button and back to list
<partial name="_CreateAndBackToListButton" />
}
</div>
</div>
</div>
@section Scripts{
<script>
$(document).ready(function () {
$('#SelectPage').change(function () {
var selectedvalue = $(this).children("option:selected").val();
$(".selectDiv").load("/Admin/Nav/GetCategoryOrProducts",
{ option: selectedvalue });
});
});
</script>
<script>
var assignvalue = function (primaryId) {
event.preventDefault();
var selectedvalue = $('#SelectPage').children("option:selected").val();
var navtext = $('#NavigateUrl');
var navurl = "/" + selectedvalue + "/" + primaryId;
navtext.val(navurl);
};
</script>
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Мой метод контроллера
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Upsert(Nav nav)
{
if (ModelState.IsValid)
{
if (nav.NavId == 0)
{
string navurl = HttpContext.Request.Form["NavigateUrl"].ToString(); // I am not able to get the value here it shows null
nav.NavigateUrl = navurl;
_unitOfWork.Nav.Add(nav);
}
else
{
_unitOfWork.Nav.Update(nav);
}
return RedirectToAction(nameof(Index));
}
return View();
}