【问题标题】:Asp.net mvc - HttpPost action start in any postAsp.net mvc - HttpPost 动作在任何帖子中开始
【发布时间】:2013-04-22 16:20:04
【问题描述】:

我有两个同名操作(普通的 LongTailSearchBox 显示类别的下拉列表,HttpPost 制作搜索页面(如果不存在)并\n 重定向到搜索页面

 public ActionResult LongTailSearchBox()
            {
 return View();
}

以及动作的httpPost

[HttpPost]
         public ActionResult LongTailSearchBox(string cat1, string cat2, string cat3, string cat4)
         {
return RedirectToAction("LongTailSearchResult", "LongTailSearch", new { name = _url });
    }

当我点击登录按钮(另一种形式)时,它会返回 http post of-course..

所以 HttpPost LongTailSearchBox 在页面加载时也会启动(我希望它仅在有人单击搜索按钮而不是任何生成 httpPost 的按钮时才启动..)

怎么做??

更新:

当我更改其中一个动作的名称时,效果就像一个魅力,但我希望它们使用相同的名称

和html的登录形式是 <form method="post" action="/LongTailSearch/LongTailSearchBox" novalidate="novalidate">

<form method="post" action="/login" novalidate="novalidate">

【问题讨论】:

  • 您的登录表单的操作方法是否设置为 longteailsearchbox ?
  • [NopHttpsRequirement(SslRequirement.Yes)] public ActionResult Login(bool? checkoutAsGuest) and [HttpPost] [CaptchaValidator] public ActionResult Login(LoginModel model, string returnUrl, bool captchaValid)
  • 顺便说一句,当我更改其中一个动作的名称时,它就像一个魅力,但我希望它们使用相同的名称
  • 和html的登录表单是
  • 为什么要为同一个问题创建两个问题?

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

您可以使用 ActionMethodSelectorAttribute 根据引起帖子的按钮名称来选择操作,如下所述:http://www.dotnetcurry.com/ShowArticle.aspx?ID=724

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多