在.net mvc中使用get与post请求

已被阅读 2039 次 | 文章分类:csharp | 2020-02-23 17:09

了解get与post请求在.net mvc中的使用方式,包括controller如何获取视图中传过来的参数

一:get请求

1、get请求传参方式,get请求我们都知道就是直接在url中以键值对的方式传值;通过任意的ajax请求拼接参数传值即可,比如可以直接请求如下接口

                                            
http://localhost:29361/Home/Get1?username=1&pwd=22
                                            
                                        

其中Home是我们控制器的名称,Get1是其中的ActionResult方法

2、其次在对应控制器的对应方法中获取参数,并返回相应结果即可

                                            
[HttpGet]
public string Get1()
{
    string username = Request.QueryString["username"];
    string pwd = Request.QueryString["pwd"];
    return "用户名:"+username +",密码"+ pwd;
           
}
                                            
                                        

/net/upload/image/20200223/6371807810150803614186405.png

HttpGet 特性限制该方法只能处理http get请求;request对象中的QueryString集合存储的就是我们路由url中参数,所以可以直接通过[name]的方式获取

二:post请求

1、post请求一般使用form表单方式提交

                                            
<form action="/Home/Post1" method="post">
    <input type="text" name="Name" />
    <input type="text" name="Age" />
    <input type="submit" value="提交" />
</form>
                                            
                                        

然后在Homecontroller中创建一个post1方法

                                            
[HttpPost]
public ActionResult Post1()
{
    ViewBag.Name = Request["Name"];
    ViewBag.Age = Request["Age"];
    return View();
}
                                            
                                        

这里使用request的方式获取值,这里方便演示,为当前的方法添加一个view视图,在方法名上右键添加视图,通过viewBage的方式在controller和view之间传值,这里选择razor语法,razor语法是.net mvc中在html中插入c#代码的一种服务器语言

/net/upload/image/20200223/6371807915889582202614967.png

2、post请求还可以通过以下的获取方式,获取表单值

                                            
[HttpPost]
public ActionResult Post2(FormCollection form)
{
    ViewBag.Title = "Post2";
    ViewBag.Name = form["Name"];
    ViewBag.Age = form["Age"];
    return View("Post1");
}
[HttpPost]
public ActionResult Post3(User user)
{
    ViewBag.Title = "Post3";
    ViewBag.Name = user.Name;
    ViewBag.Age = user.Age;
    return View("Post1");
}
                                            
                                        

其中通过class的方式,需要定义一个class

                                            
public class User
{
    public string Name{ get; set; }
    public int Age{ get; set; }
}
                                            
                                        

最后的return view(),如果没有参数,则去找和方法名对应的视图,也可以像上面两种方式制定view,将post1和post2对应的view都指向post1

/net/upload/image/20200223/6371808005355229542091988.gif

QQ:3410192267 | 技术支持 微信:popstarqqsmall

Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号