【问题标题】:Tag Helper forms: asp-for not working as expectedTag Helper 表单:asp-for 未按预期工作
【发布时间】:2016-04-23 18:39:46
【问题描述】:

感谢到目前为止的帮助。我一直在努力确保其他一切正常,以便我可以专注于这个问题。我仍然相信,一旦我们破解了它,这将是一个简单的修复。我有下面的代码,对不起,我改了这么多,我把最后一个弄得一团糟,没有备份,我不得不重新开始。

        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。所以控制器代码必须非常接近。问题是视图将空详细信息传递给控制器​​,所以我得到一个空任务,这不是我想要的。 有什么想法吗?

【问题讨论】:

  • 您是否尝试调试以查看错误是什么以及发生在哪里?

标签: c# asp.net-core-mvc tag-helpers


【解决方案1】:

您的控制器操作需要 ToDoTask 对象,而您的视图使用 TaskViewModel 对象。

尝试在两者中使用相同的类型。

【讨论】:

    【解决方案2】:

    使用标签助手表单:

    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
        
    <section >
        <input type="text" asp placeholder="Title" asp-for="MyWork.Title"/>
    </section >
    

    【讨论】:

      【解决方案3】:

      我认为,在您的 Create() 方法中,您需要实例化 ToDoTask 对象。所以试试这个:

      [HttpPost]
      public IActionResult Create(ToDoTask newTask)
      {
          newTask = new ToDoTask(); 
      
          return RedirectToAction("Index");
      }
      

      您可能还需要返回 ToDoTask 对象。

      【讨论】:

      • 感谢您的尝试,但没有成功。按照您的建议,我实例化了该对象并尝试返回它,但我们收到状态为 500 的响应。
      猜你喜欢
      • 2021-02-08
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多