2013-05-14 4 views
0

Я получаю сообщение об ошибке Ошибка сервера в '/' Application.Добавление ошибки HttpPost «Ресурс не может быть найден» в MVC

Ресурс не найден.

Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно.

Запрошенный URL:/ClientEdit/ClientEdit/1104

Информация о версии: Microsoft .NET Framework версии: 4.0.30319; ASP.NET Версия: 4.0.30319.272

, когда я добавляю атрибут HttpPost к контроллеру. Я изучил это и исправил свой код с опубликованными (ни каламбурными) ответами, но ничего, что я пробовал, работает. Вот мой заголовок контроллера:

[HttpPost] 
public ActionResult ClientEdit(int id,FormCollection formCollection) 

Я добавил HttpPost, чтобы заполнить свой объект FormCollection. Как и в случае с другими сообщениями SO, это вызывает ошибку. Удаление этой проблемы решает проблему, но мой FormCollection не заполняет пары ключей/значений.

У моего представления есть метод тега формы, установленный на POST, который решил проблемы другого разработчика, но он не решает мою проблему. Я попытался добавить свойства «name =» в мои элементы управления текстовыми полями, а также «id =», но это тоже не сработает.

<body> 

<form method="post" action="1104" id="form1"> 

Я не знаю, что еще попробовать.

+0

Пункт @Charls действителен, только что размещен в неправильном месте. Измените свой вопрос, чтобы включить фактическое исключение, которое вы получаете. –

ответ

0

Вам необходимо предоставить вам представление, которое также отображает <form>. action на то, что вы показываете, так как ваш HTML выглядит неправильно. Я бы подумал, что это будет что-то вроде action="/Controller/ClientEdit".

0

Вы указали неправильное значение в атрибуте action = "1104".

Либо вы можете указать правильный маршрут в атрибуте действия, либо оставить его, если маршрут такой же, как и для get.

Это должно работать, если GET и маршрут СТОЛБ же

<form method="post" id="form1"> 
..... 
</form> 
0

использовать это:

@using(Html.BeginForm()){ 
<!--Your form field--> 
} 

В основном то, что происходит в том, что ваш атрибут действия просто указывает на Id у вас есть и не url для сообщения.

Вы можете сделать это вручную, как это:

<form action="ClientEdit/ClientEdit/1104> 
<!--form fields--> 
</form> 
0

Да, вы все правильно. Я передавал идентификатор пользователя как действие. Это устаревший код, который «работал» для другой функции, но не соответствует шаблону MVC. Я сделал некоторые другие исследования (так как я не слишком хорошо знаком с MVC) и начал снова с нуля с помощью MVC, как и должно быть. Всем спасибо.