【问题标题】:MVC Post method not taking any information from get method??MVC Post 方法没有从 get 方法中获取任何信息?
【发布时间】:2013-06-20 17:18:14
【问题描述】:

我有一个非常令人困惑的案例。我目前有以下代码

//get method
public ActionResult EmailValidation(string email, string token)
    {
        EmailValidationViewModel model = new EmailValidationViewModel();
        model.email = email;
        model.token = token;
        Member existingMember = workflow.GetMemberByEmail(model.email, vendor.VendorID);

        if(existingMember != null)
        {
          return View();
        }
    }


     [HttpPost]
    public ActionResult EmailValidation(EmailValidationViewModel model)
    {
    }

现在上面的代码,我已经在不同的页面上测试过,自动将模型中的信息加载到 post 方法中。我相信我在下面发布的代码的新视图存在问题,它阻止它从 get 方法获取信息并将其发送到 post 方法。

我相信它与以下代码有关?

 [[Form_Start]]
<form action="/Mobile/Home/EmailValidation" id="EmailValidation" method="post" data-transition="slideup">

[[/Form_Start]]

如果你们知道为什么它在一个控制器中返回带有 get 方法数据的视图,但在下一个控制器中没有,请告诉我。此外,如果您需要更多信息,也请告诉我,我会尽力为您提供尽可能多的代码。谢谢!

【问题讨论】:

  • 你想做什么?您的两个控制器方法都有参数。请详细解释一下?
  • 我需要将我的 get 方法中的电子邮件传递给我的 post 方法。我有完全相同的代码,但有一个不同的视图,可以根据需要工作,但由于某种原因,在 ucrrent 视图中它不接受电子邮件。
  • 请提供表单的全部内容,包括所有控件。
  • 我已经使用 quickfix 解决了这个问题,我只是使用 html hiddenfor 获取参数。谢谢大家的帮助!

标签: c# asp.net-mvc-4 view controller


【解决方案1】:

这个:

    if(existingMember != null)
    {
      return View();
    }

正在返回一个没有模型的视图。

改成这样:

    if(existingMember != null)
    {
      return View(existingMember);
    }

【讨论】:

  • 不幸的是,当我调用我需要模型的 post 方法时,这对我不起作用。
  • 您的视图必须在表单中包含模型属性才能将数据返回到服务器。 ModelBinder 会处理它。
猜你喜欢
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多