2015-06-10 6 views
1

Я развиваюсь в школьном проекте, где до сих пор он прошел отлично, но проблема наконец-то появилась.Asp.net mvc не принимает параметр бритвы

У меня есть этот метод в моем HomeController:

[HttpPost] 
    public ActionResult GetSeatsInShow(int showId) 
    { 
     ... 
     return View(realSeatList); 
    } 

На мой взгляд я использую бритву для разбора параметров в контроллер и контроллер должен возвращать результат в адрес, как это:

http://localhost:1499/Home/GetSeatsInShow/236 

это то, что он делает, если я делаю это на моем других методы управления называемого Shows по следующему URL-адрес:

http://localhost:1499/Home/Shows/1 
?

Но на методе GetSeatsInShow мне нужно поместить showId = нравится фрагмент кода прямо под:

http://localhost:1499/Home/GetSeatsInShow/?showId=236 

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

@Html.ActionLink("Vælg", "GetSeatsInShow", new { id = item.Id }) 

Не могу найти проблему После этого метод Show отлично работает с теми же результатами, что и тот, который не работает.

+2

ваш 'метод show' имеет параметр, называемый' id', 'Show (интермедиат идентификатор)', но ваш 'GetSeatsInShow (я nt showId) 'принимает' showId'. Просто измените 'new {id = item.Id}' на 'new {showId = item.Id}' –

ответ

3

У вас есть несколько вариантов.

В настоящее время вы передаете параметр как id, а не showId, тогда как ваш контроллер ожидает параметр с именем showId. В результате путем обновления вашего анонимного типа вы можете передать правильное имя параметра.

@Html.ActionLink("Vælg", "GetSeatsInShow", new { showId = item.Id }) 

В качестве альтернативы, вы можете просто передать «идентификатор» в вашей строке запроса и позволяете по умолчанию привязки MVC работать это волшебство, если вы обновляете ваш контроллер:

@Html.ActionLink("Vælg", "GetSeatsInShow", new { id = item.Id }) 

[HttpPost] 
public ActionResult GetSeatsInShow(int id) 
{ 
    ... 
    return View(realSeatList); 
} 
1

Вы можете попробовать это

@Html.ActionLink("Vælg", "GetSeatsInShow", new { id = item.Id, showId = item.Id }) 
1

вы принимаете ввод showId в GetSeatsInShow и в бритве вы передаете в id

[HttpPost] 
public ActionResult GetSeatsInShow(int id) 
{ 
    ... 
    return View(realSeatList); 
} 
Смежные вопросы