2020年7月29日 星期三

Web_APi加強補述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    // 路由前綴
    [RoutePrefix("api/user")]
    public class UserController : ApiController
    {
        [HttpPost]//沒有用restful風格,需要自己制定用哪種類型來處理
        [Route("Login")]//路由名稱
        public string  Login(LoginViewModel model)
        {
            return "ok";
        }
        [HttpGet]//沒有用restful風格,需要自己制定用哪種類型來處理
        [Route("Message")]//路由名稱
        public IHttpActionResult GetMessage()
        {
            //return Ok();
            // return NotFound();
            // return InternalServerError();
            //return InternalServerError(new Exception("你錯了"));
            //因為Ok,NotFound,InternalServerError都實作了IHttpActionResult介面的類
            //所以可以直接返回,而只有Ok可以帶值回去
            return Ok(new Student()
            {
                Id = 1,
                Name = "及格了"
            });
        }
    }
}

=====================================================================
     public void Post([FromBody]string value)
        {
        }

只能由前端透過data:{ LoginName: "admin",LoginPwd:"123456"}的方式傳值過去

$.ajax({
            url: "api/user/Login",
             type: "Post",
             data: {
                     LoginName: "admin",
                     LoginPwd:"123456"
                      }
            }).done(function () {
              console.info("成功了");
                }).fail(function (err) {
              console.info(err.responseJSON.ExceptionMessage);
========================================================================
     public void Post(int Id , [FromBody]string value)
        {
               //Id 從querystring過來,value從jason過來
        }

一般會建議下列寫法
  public void Post(int Id , Student stu)
        {
             
        }




沒有留言:

張貼留言