我目前收到错误"无法找到资源"在尝试访问视图时。
我试图打开的视图称为"注册"。 Controller(AccountController)具有ActionResult方法" Register"实现。
同一个控制器包含"登录"查看我可以毫无问题地访问。
我试图呼叫的网址:
localhost:port / Account / Login< - Works localhost:port / Account / Register< - 不工作
控制器方法:
[HttpPost]
public ActionResult Register(LoginModel model)
{
if(ModelState.IsValid)
{
movieEntities db = new movieEntities();
var newUser = db.users.Create();
var encrypPass = Helpers.SHA256.Encode(model.Passwort);
var user = model.UserName;
newUser.user_name = user;
newUser.user_passwdhash = encrypPass;
db.users.Add(newUser);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
return View(model);
}
查看:
@model MovieDatabase.Models.LoginModel
@{
ViewBag.Title = "Register";
}
<h2>Register</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>LoginModel</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class
= "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UserName, new { htmlAttributes =
new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Passwort, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Passwort, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Passwort, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Register="btn btn-default" />
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
我尝试清理,重建解决方案,重命名视图,重命名方法并创建新方法...... 我在这里缺少什么?
答案 0 :(得分:1)
您正在调用的方法似乎是POST,请尝试创建另一个返回您所引用视图的方法。在你的代码上添加它。
public ActionResult Register()
{
return View();
}
视图的文件名与方法名称相同。如果 不是你得到同样的错误。
有关路由的详细信息,请参阅Microsoft文档ASP.NET MVC Routing