繁体   English   中英

加载资源失败:服务器响应状态为500(内部服务器错误)asp.net

[英]Failed to load resource: the server responded with a status of 500 (Internal Server Error) asp.net

这是我的控制器:

namespace Login.Controllers
{
    public class LoginController : Controller
    {
        // GET: Login
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Autherize(Login.Models.user usermodel)
        {

            using (LogEntities db = new LogEntities())
            {
                var userdetails = db.users.Where(x => x.USERNAME == usermodel.USERNAME && x.PASSWORD == usermodel.PASSWORD);
                if (userdetails == null)
                {
                    usermodel.ErrorMessage = "wrong inputs";
                    return View("Index", usermodel);
                }
                return View();
            }

        }
    }
}`

这是我的看法:

    @using (Html.BeginForm("Autherize", "Login", FormMethod.Post))
    {
        <table>
            <tr>
                <td></td>
                <td> Login Form   </td>
            </tr>
            <tr>
                <td> @Html.LabelFor(model => model.USERNAME)   </td>
                <td> @Html.EditorFor(model => model.USERNAME)  </td>
            </tr>
            <tr>
                <td> @Html.ValidationMessageFor(model => model.USERNAME)   </td>
            </tr>
            <tr>
                <td> @Html.LabelFor(model => model.PASSWORD)   </td>
                <td> @Html.EditorFor(model => model.PASSWORD)  </td>
            </tr>
            <tr>
                <td> @Html.ValidationMessageFor(model => model.PASSWORD)   </td>
            </tr>
            <tr>
                <td colspan="2"> <label class="field-validation-error">@Html.DisplayFor(model => model.ErrorMessage)</label> </td>
            </tr>
            <tr>
                <td></td>
                <td> <input type="submit" name="login" value="login" /> </td>
            </tr>
        </table>
    }

</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

我收到此错误。如何解决此错误?

找不到“授权”视图或其主视图,或者没有视图引擎支持搜索到的位置。 搜索了以下位置:

您已经编写了return View(); Autherize方法中,但尚未在/Views/Login文件夹中为Autherize( Autherize.cshtml )创建视图页面。

您可以创建Autherize.cshtml视图并将其返回,也可以重定向到已经存在的视图(可能是授权用户后要将用户重定向到的页面)。

您的Get方法名称为Index,因此您必须更改为Authorize才能找到视图。

return View(); 语句试图基于方法名称查找视图。 从那以后,您没有提及任何视图名称。 提及视图名称。

[HttpPost]
public ActionResult Autherize(Login.Models.user usermodel)
{
    using (LogEntities db = new LogEntities())
    {
        var userdetails = db.users.Where(x => x.USERNAME == usermodel.USERNAME 
            && x.PASSWORD == usermodel.PASSWORD);
        if (userdetails == null)
        {
            usermodel.ErrorMessage = "wrong inputs";
            return View("Index", usermodel);
        }
        return View('Autherize');
   }
}

首先通过此修改您的代码

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

    [HttpPost]
    public ActionResult Index(Login.Models.user usermodel)
    {

        using (LogEntities db = new LogEntities())
        {
            var userdetails = db.users.Where(x => x.USERNAME == usermodel.USERNAME && x.PASSWORD == usermodel.PASSWORD);
            if (userdetails == null)
            {
                ViewData["ErrorMessage"] = "wrong inputs";
                return View("Index");
            }
            return View("Autherize");
        }

    }

并使用@using (Html.BeginForm("Index", "Login", FormMethod.Post))更改此@using (Html.BeginForm("Autherize", "Login", FormMethod.Post)) @using (Html.BeginForm("Index", "Login", FormMethod.Post))

然后在Index.cshtml页面

@if (ViewData["ErrorMessage"] != null)
{
   //Write your error message here.
   <h5>User name and password wrong</h5>
}

然后创建Autherize视图:

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

如果您的USERNAME和PASSWORD不为null,则转到Autherize View。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM