【问题标题】:Posting data from view to controller in ASP.Net MVC在 ASP.Net MVC 中将数据从视图发布到控制器
【发布时间】:2013-07-15 20:48:01
【问题描述】:

网络 mvc。我无法将数据从客户端发送到控制器。假设我有一个表格。有两组输入控件。一组用于登录,另一组用于注册,但两个控件都采用一种形式。 在不使用 JavaScript 发布表单的情况下如何将数据从视图发布到控制器。在名为 login 和 register 的控制器中会有两个不同的功能。

将有两个按钮控制名称登录和注册以相同的形式。当用户填写登录详细信息并单击登录按钮时,登录数据将被发布到控制器并调用登录操作方法。

当用户填写注册信息并点击注册按钮时,注册相关数据将被发布到控制器并调用注册操作方法。

请帮助我提供视图和控制器的示例代码。谢谢

【问题讨论】:

  • 如果它们都在一个表单中,它们必须执行一个控制器操作。要么是 Javascript,要么你把它分成两种形式
  • 如果您解释为什么不想使用两种形式,帮助您将变得更容易。看来你知道你应该使用两种形式
  • 请出示您的ViewController 代码,以便我们为您提供帮助。
  • 好的,我没有两种形式的问题。请帮我写代码

标签: asp.net-mvc


【解决方案1】:

执行以下操作(一个表单,一个控制器操作):

查看:

[...]
<input type="submit" id="login" name="login" value="Login" />
<input type="submit" id="register" name="register" value="Register" />

控制器操作:

[HttpPost]
public ActionResult LoginRegister(MyModel myModel, string login, string register)
{
    if (login == null)
    {
        // Button "Register" clicked
        [...]
    }

    if (register == null)
    {
        // Button "Login" clicked
        [...]
    }

    [...]

}

【讨论】:

  • 你永远不应该让一个动作做多个语义不同的事情。如果您还想注册一个 Facebook 帐户以登录怎么办?您是否执行LoginRegiserFacebook 并添加另一个检查?如果您想添加其他内容怎么办?应该有一个Login 操作和一个Register 操作。
  • 原始问题中未包含您所有的“假设”。我只是回答了一个具体问题,没有给出 ASP.NET MVC 开发指南。
  • 不管“假设”如何,原点都成立。如果我们正在指导缺乏框架经验的人,我们不妨引导他们采用最佳实践。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 2014-08-18
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多