ASP.NET Core 8 MVC: контроллер отправляет неправильную формуC#

Место общения программистов C#
Ответить
Anonymous
 ASP.NET Core 8 MVC: контроллер отправляет неправильную форму

Сообщение Anonymous »

Я пишу веб-приложение ASP.NET Core 8 MVC. У меня есть два контроллера с одинаковым именем в разных папках: один наследуется от ControllerBase, а другой — от Controller.
Реализация контроллера имеет две функции под названием Удалить:

Код: Выделить всё

// GET: ProjectsController/Delete/5
[HttpGet]
public async Task Delete(string id)
{
using (HttpClient httpClient = new HttpClient())
{
HttpRequest request = _httpContextAccessor.HttpContext!.Request;

Uri baseUrl = new UriBuilder(request.Scheme, request.Host.Host, request.Host.Port ?? -1).Uri;

httpClient.BaseAddress = baseUrl;
HttpResponseMessage result = httpClient.GetAsync($"/api/projects/{id}").Result;

string content = await result.Content.ReadAsStringAsync();

JsonSerializerOptions options = new JsonSerializerOptions
{
TypeInfoResolver = new DefaultJsonTypeInfoResolver
{
Modifiers =
{
static typeInfo =>
{
if (typeInfo.Kind != JsonTypeInfoKind.Object)
return;

foreach (JsonPropertyInfo propertyInfo in typeInfo.Properties)
{
// Strip IsRequired constraint from every property.
propertyInfo.IsRequired = false;
}
}
}
}
};

SpRroject.Fields project = JsonSerializer.Deserialize(content, options)!;

return View(project);
}
}

// POST: ProjectsController/Delete/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(string id, IFormCollection? collection)
{
try
{
return RedirectToAction(nameof(Index));
}
catch
{
return View();
}
}

Теперь вызов get работает нормально, за исключением того, что в представлении форма, используемая для публикации, имеет неправильный URL-адрес.

Код: Выделить всё





 |
[url=/Projects]Back to List[/url]

Я понятия не имею, почему действие реализации контроллера добавляет /api к форме в связанном представлении.
Я пробовал так много вещей в представлении, но оно всегда перезаписывается тем, что отправляет контроллер. Я использую страницы Razor.

Подробнее здесь: https://stackoverflow.com/questions/792 ... wrong-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»