позвольте мне начать с объяснения того, что я пытаюсь сделать.У меня есть форма с раскрывающимся списком, где при изменении значения вызывает текст метки для изменения.Чтобы сделать это, я прикрепил событие сценария onchange к выключению.
<select onchange="ChangeLabel()" id="ContainerValue" asp-for="Container" class="form-control"/>
Метка
<label id="AddressLabel" asp-for="Container" class="control-label"/>
Сценарий, который он вызывает,
<script>
function ChangeLabel() {
var val = $('#ContainerValue').val();
$.ajax({
url: '/Rundown/GetLabel/' + val ,
type: "GET",
dataType: "text",
success: function (labelText) {
$("#AddressLabel").html(labelText);
}
});
}
</script>
Поэтому я создаюдействие в моем контроллере под названием GetLabel с идентификатором параметра.
[HttpGet]
// GET: Rundown/GetLabel/5
public string GetLabel(int id)
{
return "x";
}
Так что я почти уверен, что использую маршрутизацию по умолчанию, которая создается при настройке проекта.Насколько я знаю, я не связывался с этим.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Теперь, когда я изменяю выбор в раскрывающемся списке, запрос на изменение срабатывает, и делается запрос на /Rundown/GetLabel/1
, но он возвращаетошибка 404.Просто для целей тестирования я заметил, что если бы я выполнил /Rundown/GetLabel/?id=1
, я бы нажал на свое действие GetLabel и вернул бы мое "x"
строковое значение.Любая идея, почему я не вижу, как мое действие получает нормальную [controller]/[action]/[id]
маршрутизацию, которую я ожидал бы сработать?
Единственная другая связанная с этим информация, о которой я могу думать, - это маршрут в приборе над классом контроллера.
[Route("[controller]/[action]")]
public class RundownController : Controller