我在MVC4中遇到了一个非常恼人的问题,我的表单发布没有达到我指定的操作。我以前做过很多次,它工作得很好,但在我的新项目中,它似乎根本不起作用。
HTML/Razor:
@model XYZ.Models.PageModels.LoginPageModel
<div class="login">
<form class="left form">
@using (Html.BeginForm("Login", "Account", FormMethod.Post))
{
<div class="form-group form-group-sm">
<label class="control-label" for="UserName">User Name</label>
@Html.TextBoxFor(model => model.UserName, new {@class="form-control", @placeholder="User Name"})
</div>
<div class="form-group form-group-sm">
<label class="control-label" for="Password">Password</label>
@Html.PasswordFor(model => model.Password, new {@class="form-control", @placeholder="Password"})
</div>
<div class="buttons right">
<input type="submit" class="btn btn-primary btn-sm" value="Login" />
</div>
}
</form>
</div>
控制器:
public class AccountController : Controller
{
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LoginPageModel model)
{
throw new Exception("I'm here!");
return View();
}
}
路由配置:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
型号:
public class LoginPageModel
{
[Required(ErrorMessage = "User Name required")]
public string UserName { get; set; }
[Required(ErrorMessage = "Password required")]
public string Password { get; set; }
}
有什么想法吗?谢谢!
在标记中有嵌套的表单。一个是您自己编写的,另一个是从html.beginform
帮助器方法生成的。除掉外面的那个,你就可以走了。
这应该很管用。
<div class="login">
@using (Html.BeginForm("Login", "Account"))
{
<div class="form-group form-group-sm">
<label class="control-label" for="UserName">User Name</label>
@Html.TextBoxFor(model => model.UserName, new { @class = "form-control", @placeholder = "User Name" })
</div>
<div class="form-group form-group-sm">
<label class="control-label" for="Password">Password</label>
@Html.PasswordFor(model => model.Password, new { @class = "form-control", @placeholder = "Password" })
</div>
<div class="buttons right">
<input type="submit" class="btn btn-primary btn-sm" value="Login" />
</div>
}
</div>
问题内容: 我正在将数据从javascript应用程序发送到MVC5控制器,但是,当数据提交到Submit controller操作时,它永远不会被调用。我有一些非常简单的映射器,它们创建以下JSON对象: 然后,我使用以下代码发送数据: 我的控制器代码如下: 我有以下问题: 但是,从不会调用Submit,但是,如果我注释掉了控制器参数,那么它将被调用,这是为什么呢? 从上面看来,控制器框架似乎无
本文向大家介绍Thinkphp 空操作、空控制器、命名空间(详解),包括了Thinkphp 空操作、空控制器、命名空间(详解)的使用技巧和注意事项,需要的朋友参考一下 1、空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 http://网址/index.php/Home/Main/login htt
概览 触发器配置卡片 此面板配置一些触发器的基本信息,或者进行查阅触发器触发日志等操作。 触发类型目前有两种: 数据表 微信支付回调 条件卡片 对应上面的触发类型,设置不同触发类型的参数。 动作卡片 当触发器的条件被满足,将会执行触发器中的动作。 目前有四种动作类型可选,分别如下: 邮件 微信模板消息 webhook 数据表操作 不同的触发类型对应可选的动作类型不同,每个动作类型又有可选模板变量的
空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 下面的例子用空操作功能实现了一个城市切换的功能。 我们只需要给City控制器类定义一个_empty (空操作)方法: <?php namespace app\index\controller; class City { public fu
对于我们的web应用程序,我需要保存获取和显示的项的顺序,这取决于视图--或者准确地说--生成视图的控制器和操作(当然还有用户id,但这不是这里的重点)。 我认为,与其在每个控制器操作中自己给出一个标识符(以便使用它对DB输出进行视图依赖的排序),不如从控制器和操作方法中自动创建这个标识符更安全、更容易。 如何从控制器的操作方法中获取控制器和操作的名称?还是我需要反思?
我正在尝试使用$http访问Web API get控制器。按如下方式进行角度应用: 在我的例子中,PrimaryID或AlternateID都具有该值。因此,其中一个将始终为空。 我的Web api方法是 当其中一个值为 null 时,$http.get 生成的 url 如下所示: 或者 这不符合我的Web API方法。 但是,如果我使用 它工作了。我可以在我的参数中将值硬编码为null,但是我想