【问题标题】:Model not being passed to controller模型未传递给控制器
【发布时间】:2019-10-18 05:55:13
【问题描述】:

我的一个 asp.net 核心页面没有将其模型传回控制器。我在 stackoverflow 中调查了类似的线程,但没有一个可以解决我的问题 - 在这种特殊情况下有什么不同?

在附加的 MVC 中,我填写输入框“在此处输入一些文本”,然后单击“单击此处”按钮。调试器正确进入控制器,但变量“TEST”返回null。

哪位大神能帮帮我?

我的模特:

namespace MyProgram.Models._04_ModuleTasker
{
    public class TaskerViewModel
    {
        public SelectList SelectListLocations;
        public SelectList SelectListUsers;
        public SelectList SelectListFilters;

        public string SelectedCompanyLocationDesc;
        public string SelectedUserId;
        public string SelectedFilter;

    }
}

我的观点:

@model MyProgram.Models._04_ModuleTasker.TaskerViewModel
@{
    ViewData["Title"] = "AllTasks";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="container-fluid">
    <div class="PageTitle">
        Tasker
        <hr class="TitleHR" />
    </div>
    <div style="text-align:center;margin-top:20px" class="text-body">
        <form asp-controller="Tasker" asp-action="ShowActiveTasksPOST" method="post" role="form">
            <input type="text" asp-for="SelectedUserId" /> Enter here some text <br />
            <input type="submit" class="btn btn-success InputShortWidth LoginButton" value="CLICK HERE" />
        </form>
    </div>
</div>

我的控制器:

        [HttpPost]
        public async Task<IActionResult> ShowActiveTasksPOST(TaskerViewModel taskerViewModel)
        {
            string TEST = taskerViewModel.SelectedUserId;         
            return RedirectToAction("Index", "Home");
        }

【问题讨论】:

  • 为表单生成的 html 是什么样的?
  • 您没有将模型从控制器传递给视图。
  • Aleksa - 我应该更改什么以将模型传递给查看?
  • 看看stackoverflow.com/questions/53882985/…你有同样的问题,你需要setter and getter
  • Hameed - 就是这样。非常感谢,让我卡了一整天,就这么简单。回答问题,我会记下的。

标签: asp.net-core


【解决方案1】:

要使绑定生效,您需要使用 setter 和 getter 将 fields 转换为 properties。例如:

public string SelectedCompanyLocationDesc { get; set; }
public string SelectedUserId { get; set; }
public string SelectedFilter { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    相关资源
    最近更新 更多