MVC入门问题

qq_36402950 2017-11-24 07:34:03
纯新手,最近刚刚学asp.net mvc。问的问题有点幼稚,希望大家谅解。

刚接触model,view,controll的概念。感觉还是很糊涂,看不太明白。

现在想实现一个非常简单的登录功能。请大家指教我这个新手。。。

第一步,先用vs2015新建一个asp.net web application,然后选择empty+mvc核心。
在Model里新建一个类User.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Test02.Models
{
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public string Password { get; set; }
}
}


第二步
新建一个Controller,叫做UserController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Test02.Controllers
{
public class UserController : Controller
{
// GET: User
public ActionResult Index()
{
return View();
}
}
}

同时创建这个Index的View.

第三步,构建index的view文件。
@model Test02.Models.User

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<form>
<input type="text" id="userID" />
<input type="text" id="password" />
<input type="submit" value="登录"/>
</form>
</div>
</body>
</html>

只有两个输入框,一个用户ID,一个密码,一个登陆提交按钮。


想实现的功能就是,输入用户名和密码,后台进行比对,如果正确,就登陆成功, 跳转到另外一个页面(还没有写),如果不正确就提示错误。这个里面没有用到数据库,就想直接比对特定字符串,比如userID是“Admin”,密码是“Password”就可以了。

...全文
347 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
EdsionWang 2017-11-28
  • 打赏
  • 举报
回复
Controller里面建一个Login的Action

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

        public ActionResult LoginAction()
        {
            object data;
            string userName = Request.Form["UserName"];
            string userPwd = Request.Form["UserPwd"];
            if(userName == "admin" && userPwd == "123")
                data = new { type = "1", message = "用户名密码正确,登录成功!" };
           else
                data = new { type = "0", message = "用户名密码正确,登录失败!" };
            return Json(data, JsonRequestBehavior.AllowGet);
        }
    }
View里面引用Jquery,通过Ajax将数据传到Controller里面

<html>
<head>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btnLogin").click(function () {
                $.ajax({
                    url: "/Login/LoginAction",
                    type: "Post",
                    data: $("#LoginForm").serialize(),
                    dataType: "json",
                    success: function (data) {
                        if (data == 1) {
                            alert(data.message);
                        }
                        else {
                            alert(data.message);
                        }
                    }
                });
            });
        });
    </script>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <form id="LoginForm">
            UserName : <input type="text" id="userID" name="UserName" /> <br/>
            UserPwd: <input type="text" id="password" name="UserPwd"/> <br />
            <input type="button" id="btnLogin" value="登录" />
        </form>
    </div>
</body>
</html>
如果你需要和数据库打交道了,再去搞Model的内容
ying1234 2017-11-25
  • 打赏
  • 举报
回复
Test02.Models这个独立出来,单独的类库项目,MVC项目里的Models建成ViewModels(只针对视图的实体),View里不要写逻辑,好多if什么判断可以移到后台,View只显示ViewModels里的数据
淡淡的活着 2017-11-25
  • 打赏
  • 举报
回复
post提交表单
threenewbee 2017-11-24
  • 打赏
  • 举报
回复
登录功能什么都不要做就有了,在新建项目的对话框上,有个用户认证的选项,里面选择Form验证,就可以有。
全栈极简 2017-11-24
  • 打赏
  • 举报
回复
asp.net mvc的运行流程是:view填写表单,提交表单->控制器方法接受view请求->控制器方法里面调用Model的数据操作->控制器方法返回view->view呈现,大致这个过程。 view中的form表单可以这么写:
 <form action="/User/Login" method="post">
            <input type="text" id="Name" name="Name" />
            <input type="text" id="password" name="password" />
            <input type="submit" value="登录" />
        </form>
action对应后台controller的方法,input元素中的name名称跟后台model定义的属性名称要一致。 controller中的login(action)可以这么写:
 [HttpPost]
        public ActionResult Login(User user)
        {
            //这里的user对象就是view提交过来的,可以获取输入的参数,读取数据库进行比较
            return View();
        }
httppost特性就指定为只允许post动作。
qq_36402950 2017-11-24
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
参看一下这个:http://blog.csdn.net/u011587956/article/details/50317071
前天刚接触MVC 包括html js这些都不是很熟悉。。。所以那个例子我看过,但是看得不太懂,我现在就是想尽可能讲问题简化出来,那个例子可能对于你们来说都过于小儿科,对我来说确实很多问题交织在一起,导致我看不太懂。能不能麻烦您对我帖子中写出的问题给一个明确的答案,让我自己再领悟一下,我现在感觉对controller和view直接很迷糊。
全栈极简 2017-11-24
  • 打赏
  • 举报
回复

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧