[英]Asp-for tag helper in Material Design Lite with .NET Core
[英]Tag Helper forms: asp-for not working as expected
感謝你目前的幫助。 我一直在努力確保其他一切正常,這樣我就可以專注於這個問題。 我仍然相信,一旦我們破解了它,它就會很容易修復。 我有以下代碼,抱歉,我改變了太多,在我把最后一個代碼搞得一團糟之后,我不得不重新開始,沒有進行備份。
public IActionResult Index()
{
if(IndexModel.GlobalTasks == null)
{
IndexModel initModel = new IndexModel();
initModel.AllTasks = InitList();
initModel.EmptyTask = new ToDoTask();
IndexModel.GlobalTasks = initModel.AllTasks;
}
IndexModel model = new IndexModel();
model.AllTasks = IndexModel.GlobalTasks;
model.EmptyTask = new ToDoTask("");
return View(model);
}
//Create Task
public IActionResult Create(ToDoTask indexModel)
{
IndexModel.GlobalTasks.Add(indexModel);
return RedirectToAction("Index");
}
和:
@model DE.Models.IndexModel
<h2>To Do List</h2>
<form asp-action="Create">
<input asp-for="EmptyTask" value="@Model.EmptyTask" />
<input asp-for="EmptyTask.TaskDetails" placeholder="New Task" />
<button type="submit">Add Task</button>
</form>
好消息是這會創建一個新的 ToDoTask。 所以控制器代碼必須非常接近現場。 問題是視圖將空詳細信息傳遞給控制器,所以我得到一個空任務,這不是我想要的。 有任何想法嗎?
您的控制器操作需要一個ToDoTask
對象,而您的視圖使用一個TaskViewModel
對象。
嘗試在兩者中使用相同的類型。
我認為,在您的Create()
方法中,您需要實例化ToDoTask
對象。 所以試試這個:
[HttpPost]
public IActionResult Create(ToDoTask newTask)
{
newTask = new ToDoTask();
return RedirectToAction("Index");
}
您可能還需要返回ToDoTask
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.