0

Будучи сражаясь с этой проблемой слишком долго, пришло время попросить о помощи. Путь удаления моего .net-ядра mvc-приложения не удаляется. Все остальные маршруты (Get, Post) попадают в штрафную. Маршрут конфигурации при запуске выглядит следующим образом:Удалить маршрут не попадает

app.UseMvc(routes => 
    { 
     routes.MapRoute(
      name: "default", 
      template: "{controller}/{action}/{id?}"); 
    }); 

отправки формы выглядит примерно так:

<a class="btn btn-primary" href="~/DisabledRegistrations/Delete/@(Model.Id)">Confirm</a> 

метод управления выглядит следующим образом:

[Authorize] 
[HttpDelete] 
public async Task<IActionResult> Delete(string id) 
{ 
    ... 
} 

Но удара, что с чем-то например:

https://localhost:8307/DisabledRegistrations/Delete/f17dff6b3fcd43ba89eab4bbad5c992e 

Результаты в:

No webpage was found for the web address: 
https://localhost:8307/DisabledRegistrations/Delete/f17dff6b3fcd43ba89eab4bbad5c992e 

Забегаем Service Fabric и не уверен, что если есть какие-либо сведения об этом. Наш web.config имеет это, хотя и не уверен, если это актуально в этом контексте:

<system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/> 
    </handlers> 

Любые намеки на вещи, чтобы попробовать очень ценятся.

UPDATE:

Если я на самом деле представить форму следующим образом:

<form asp-controller="DisabledRegistrations" asp-action="Delete" method="delete" asp-route-id="@Model.Id"> 
    <div class="text-right"> 
     <button type="submit" class="btn btn-primary">Confirm</button> 
     <a class="btn btn-primary" href="~/DisabledRegistrations/Index">Cancel</a> 
    </div> 
</form> 

Тогда я все еще получаю:

No webpage was found for the web address: 
https://localhost:8307/DisabledRegistrations/Delete/f17dff6b3fcd43ba89eab4bbad5c992e?__RequestVerificationToken=CfDJ8KwmDf2MXHlGrC8zIIntu4IV_83R9jSBwPqk3w8Ymq2VoBnQHN8lxEOHqMUfJwtxX-HLZwr6AWw8uKiVaSz7l-CZjPzZ_IxJhRh31MYiwbgsJzLcQMvrHWGd_sueZ8OLKbRAoYGeVHLfVfkjac-TCaLE9CoOYSCyhY4EDtrFhiLVY3_3h-bJTSLYTT2E7qXcvA 
+0

- это представление с использованием глагола DELETE? Я не думаю, что delete является допустимым для свойства метода формы? –

+0

Он отображается в VS как действительный параметр для атрибута метода. – webteckie

+0

Да, я не буду этому верить. Доверяйте, что браузер сообщает вам во время проверки запроса: http://stackoverflow.com/questions/5162960/should-put-and-delete-be-used-in-forms –

ответ

1
[HttpDelete] 

это глагол, как пост, вы не делаете http delete из своей ссылки, которая просто делает http для этого e не соответствует вашему маршруту. для удаления глагола вам нужно будет использовать ajax и указать глагол.

вы не подав форму, вы только показать, что элемент ссылки поэтому получить не удалять глагол

+0

Неплохо, я тоже хотел включить код отправки формы (я пробовал разные способы), но пропустил это. Я обновил OP с помощью этой информации. Еще одна проблема. – webteckie

+0

Я не думаю, что веб-браузеры поддерживают удаление или посылку глаголов в методе формы, поэтому снова вам нужен ajax для этого, он не использует этот глагол, поэтому он не соответствует маршруту. Вы можете изменить свой метод Delete на HttpPost и изменить метод формы для публикации.но для использования глагола удаления я думаю, вам придется использовать ajax –

+0

Спасибо Джо, за мой комментарий выше, чем OP, это то, что я сделал. – webteckie

0

Я не совсем уверен, почему вы используете форму, чтобы сделать это. Тег < a> сделает это для вас очень легко.

<div class="text-right"> 
    <a class="btn btn-primary" asp-controller="DisabledRegistrations" asp-action="Delete" asp-route-id="@Model.Id">Confirm</a> 
    <a class="btn btn-primary" href="~/DisabledRegistrations/Index">Cancel</a> 
</div> 
Смежные вопросы