2012-05-16 4 views
2

Я пишу свое первое приложение MVC3, и я застрял в какой-то момент. Вот то, что я не ясно, о,Смущает поведение такого же кода?

В Taskscontroller генерироваться Редактировать действие выглядит следующим образом:

// GET: /Tasks/Edit/5 

public ActionResult Edit(int id) 
{ 
Task task = db.Tasks.Find(id); 
    return View(task); 
} 

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

@Html.ActionLink("Edit", "Edit", new { id = item.TaskId }) 

Здесь идентификатор правильно передано в действие «Редактировать».

Это, как я изменил метод создания (Get), чтобы получить значение идентификатора от видовых и фрагментов кода является,

public ActionResult Create(int i) 
{ 
    ViewData["I"] = i; 
    return View(i); 
} 

и соответствующий вид кода следующим образом,

@Html.ActionLink("c", "Create", "Tasks", new { id = someId }, new { @class = somecssclass}) 

Любая помощь приветствуется. Почему в значении идентификатора действия создания значение null?

Заранее спасибо.

+0

у вас есть я параметр в действии и passind идентификатор из поля зрения – karaxuna

ответ

0

попробовать

public ActionResult Create(int id) 
{ 
    ViewData["I"] = i; 
    return View(i); 
} 

модель связыватель по умолчанию не находите соответствия ПОЛУЧАТЬ параметр для связывания id или его опечатку? кроме того, если вы хотите получить строку, вы должны также разместить строку

@Html.ActionLink("c", "Create", "Tasks", new { id = someId.ToString() }, new { @class = somecssclass}) 

если вы получаете FormCollection вы найдете id там как

public ActionResult Create(string i, FormCollection col) 
    { 
     var id = col["id"]; 
     ViewData["I"] = i; 
     return View(i); 
    } 
+0

3nigma: Спасибо. Да, параметр String - это опечатка, это int в моем текущем коде. Но другое предложение использовать FormCollection для извлечения идентификатора также не помогло. И все же id является нулевым в действии Create. Я чувствую, что что-то не так в @ HTML.ActionLink() переопределить? Любая идея относительно этого. – KasunLak

+0

@ KasunLak до тех пор, как 'create' - это имя вашего результата действия и' tasks' вашего контроллера, вспомогательный синтаксис в порядке – Rafay

Смежные вопросы