首页 > 解决方案 > 模型在使用 C# 将 POST 方法作为参数传递给 ASP.NET MVC 中同一控制器的 GET 方法时获取 NULL

问题描述

我无法在同一控制器GET传递的方法中获取模型及其值。POST请在下面找到代码片段。请帮我解决它。

模型:

public class country
{
    public string CountryCode { get; set; }
    public long? CountryId { get; set; }
}

控制器:

[HttpGet]
public async Task<ActionResult> Create()
{
    return View();
}

[HttpPost]
public async Task<ActionResult> Create(Country _country)
{
    var data = await checkduplicate(_country);

    if (!data.status)
    {
        ModelState.AddModelError("Name", data.ErrorMessage);
        return RedirectToAction("Edit", new {_country});
    }
    else
    {
        return RedirectToAction("Index");
    }
}

public async Task<ActionResult> Edit(Country _country)
{
    return View("Create", _country);
}

在这个示例中,我只给出了两个值,但实际上我有大约 8 个参数。请提出建议。我使用了剃刀视图页面。

提前致谢。

标签: c#asp.net-mvcasp.net-mvc-4asp.net-mvc-5

解决方案


我得到了答案,这是一个小错误,同时通过 post end 发送模型。它应该如下所示。我在其中包含了关键字“new”。删除关键字 new 后,它工作正常。

[HttpPost]
public async Task<ActionResult> Create(Country _country)
{
    var data = await checkduplicate(_country);

    if (!data.status)
    {
        ModelState.AddModelError("Name", data.ErrorMessage);
        return RedirectToAction("Edit", _country);
    }
    else
    {
        return RedirectToAction("Index");
    }
}

推荐阅读