C# 从asp.net mvc中的帐户控制器登录页调用Manage controller GET方法
要从帐户控制器登录页面调用管理控制器中的C# 从asp.net mvc中的帐户控制器登录页调用Manage controller GET方法,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,要从帐户控制器登录页面调用管理控制器中的AddPhoneNumber方法。我在登录页面中有一个复选框,我已经为OTP实现了这个复选框 我想要的是,当选中复选框时,它应该调用managecontroller中的AddPhoneNumberGET方法来打开页面 管理控制器 // GET: /Manage/AddPhoneNumber public ActionResult AddPhoneNumber() { return View();
AddPhoneNumber
方法。我在登录页面中有一个复选框,我已经为OTP实现了这个复选框
我想要的是,当选中复选框时,它应该调用managecontroller中的AddPhoneNumber
GET方法来打开页面
管理控制器
// GET: /Manage/AddPhoneNumber
public ActionResult AddPhoneNumber()
{
return View();
}
添加电话号码页
@model Aayumitra.Models.AddPhoneNumberViewModel
@using (Html.BeginForm("AddPhoneNumber", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Add a phone number</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.Number, new { @class = "col-md-5 control-label" })
<div class="col-md-7">
@Html.TextBoxFor(m => m.Number, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-primary" value="Send verification code" />
</div>
</div>
}
@model Aayumitra.Models.AddPhoneNumberViewModel
@使用(Html.BeginForm(“AddPhoneNumber”,“Manage”,FormMethod.Post,new{@class=“form horizontal”,role=“form”}))
{
@Html.AntiForgeryToken()
添加电话号码
@Html.ValidationSummary(“,new{@class=“text danger”})
@LabelFor(m=>m.Number,新的{@class=“col-md-5控制标签”})
@TextBoxFor(m=>m.Number,新的{@class=“form control”})
}
登录页面
@using Aayumitra.Models
@model LoginViewModel
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<div class="form-group">
<label for="email">Mobile Number / Email ID</label>
@Html.TextBoxFor(m => m.Email, new { @class = "form-control form-control-sm", placeholder = "Mobile Number / Email ID" })
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<label for="password">Password</label>
@Html.PasswordFor(m => m.Password, new { @class = "form-control form-control-sm password-input", placeholder = "Password" })
@Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
</div>
<div class="form-group">
<input type="checkbox" name="remember-password" id="remember-pass-check" onclick="triggerLink()">
<label for="">Login with OTP instead of password</label>
</div>
}
function triggerLink() {
debugger;
var theUrl ='@Url.Action("AddPhoneNumber","Manage", Model)';
}
@使用Aayumitra.Models
@模型LoginView模型
@使用(Html.BeginForm(“Login”,“Account”,new{ReturnUrl=ViewBag.ReturnUrl},FormMethod.Post,new{@class=“form horizontal”,role=“form”}))
{
@Html.AntiForgeryToken()
手机号码/电子邮件ID
@Html.TextBoxFor(m=>m.Email,新的{@class=“formcontrol form control sm”,placeholder=“Mobile Number/Email ID”})
@Html.ValidationMessageFor(m=>m.Email,“,new{@class=“text danger”})
密码
@Html.PasswordFor(m=>m.Password,新的{@class=“form control form control sm Password input”,placeholder=“Password”})
@Html.ValidationMessageFor(m=>m.Password,“,new{@class=“text danger”})
使用OTP而不是密码登录
}
函数triggerLink(){
调试器;
var theUrl='@Url.Action(“AddPhoneNumber”,“Manage”,Model)”;
}
请参见:
在triggerLink()
方法中,类似于:
<script type="text/javascript">
function triggerLink() {
debugger;
var theUrl ='@Url.Action("AddPhoneNumber","Manage")';
window.location.href = theUrl;
}
</script>
函数triggerLink(){
调试器;
var theUrl='@Url.Action(“AddPhoneNumber”,“Manage”);
window.location.href=URL;
}
另外,不要认为您需要传递模型,因为您的控制器操作看起来不像它期望的那样…请参阅:
在triggerLink()
方法中,类似于:
<script type="text/javascript">
function triggerLink() {
debugger;
var theUrl ='@Url.Action("AddPhoneNumber","Manage")';
window.location.href = theUrl;
}
</script>
函数triggerLink(){
调试器;
var theUrl='@Url.Action(“AddPhoneNumber”,“Manage”);
window.location.href=URL;
}
另外,不要认为您需要传递模型,因为您的控制器操作看起来不像它期望的那样…它不起作用。当它调用时,它使用这个URL
http://localhost:49812/Account/Login?ReturnUrl=%2FManage%2FAddPhoneNumber
。并且页面不会显示。Hmmm。不知道你有什么不同。我刚刚重新创建了您的代码,它进行了以下更改:将javascript包装在标记中;我没有你的模型,所以我没有通过模型。更新了我的回复以反映这些变化。当我查看源代码时,URL
变量为“/Manage/AddPhoneNumber”(如预期),重定向按预期触发。Hi Jonathan,我已经使用个人用户帐户创建了我的应用程序,我可以使用默认创建的登录和注册页面。如果我们在登录页面中放入复选框,并在登录页面中写入JQeury逻辑,那么它不会调用Manage
controller下的AddPhoneNumber
。但奇怪的是,如果我创建了无身份验证
应用程序并执行了相同的操作,那么它就可以工作了。请告诉我为什么行为不同。当您在登录页面上查看源代码时,URL的javascript值是多少?它给了我/Manage/AddPhoneNumber
。但它看起来像http://localhost:49812/Account/Login?ReturnUrl=%2FManage%2FAddPhoneNumber
在url中。它不起作用。当它调用时,它使用这个URLhttp://localhost:49812/Account/Login?ReturnUrl=%2FManage%2FAddPhoneNumber
。并且页面不会显示。Hmmm。不知道你有什么不同。我刚刚重新创建了您的代码,它进行了以下更改:将javascript包装在标记中;我没有你的模型,所以我没有通过模型。更新了我的回复以反映这些变化。当我查看源代码时,URL
变量为“/Manage/AddPhoneNumber”(如预期),重定向按预期触发。Hi Jonathan,我已经使用个人用户帐户创建了我的应用程序,我可以使用默认创建的登录和注册页面。如果我们在登录页面中放入复选框,并在登录页面中写入JQeury逻辑,那么它不会调用Manage
controller下的AddPhoneNumber
。但奇怪的是,如果我创建了无身份验证
应用程序并执行了相同的操作,那么它就可以工作了。请告诉我为什么行为不同。当您在登录页面上查看源代码时,URL的javascript值是多少?它给了我/Manage/AddPhoneNumber
。但它看起来像http://localhost:49812/Account/Login?ReturnUrl=%2FManage%2FAddPhoneNumber
在url中。