1. 程式人生 > >MVC學習筆記(六)---遇到的小問題匯總

MVC學習筆記(六)---遇到的小問題匯總

== rtti data- 成功 進行 都是 count htm family

一、MVC中Controller中返回兩個對象的寫法如下:

return Json(new { code = 1, msg = "成功", user = user, userInfo = person });

二、前臺向後臺傳入帶有html標簽的字符串,需要在後臺Controller前加入[ValidateInput(false)]

[HttpPost]
[ValidateInput(false)]
public ActionResult Test(string str)
{
    return Content("test");
}    

三、枚舉用法的總結:

工程目錄結構如下:

技術分享圖片

Enum_Type中的代碼如下:

namespace Common.Enum
{
    public enum Enum_Type
    {
        未發送 = 1,
        發送成功 = 2,
        發送失敗 = 3
    }
}

A.在前臺(Index.cshtml)用枚舉

(1)在web項目中添加Common類庫的引用

技術分享圖片

(2)記得要在Index.cshtml頁面頭部添加引用

@using Common.Enum;

<h2>Index</h2>
<ul>
    <li 
data-id="@Convert.ToInt32(Enum_Type.未發送)">@Enum_Type.未發送</li> <li data-id="@Convert.ToInt32(Enum_Type.發送成功)">@Enum_Type.發送成功</li> <li data-id="@Convert.ToInt32(Enum_Type.發送成功)">@Enum_Type.發送失敗</li> </ul> <select> <option value="@Convert.ToInt32(Enum_Type.未發送)"
>@Enum_Type.未發送</option> <option value="@Convert.ToInt32(Enum_Type.發送成功)">@Enum_Type.發送成功</option> <option value="@Convert.ToInt32(Enum_Type.發送成功)">@Enum_Type.發送失敗</option> </select>

效果(樣式我都沒寫,只是想展示下效果)

技術分享圖片

B.枚舉常用的方法(我每次用每次查,捂臉中)

1 //根據名稱獲取對應的數字,結果為:3
2 int enum_Int =(int) Enum.Parse(typeof(Enum_Type), "發送失敗");
3 //根據數字獲取名稱,結果為發送失敗
4 string enum_String = Enum.GetName(typeof(Enum_Type), 3);
5 
6 //獲取枚舉類型的數字,結果為:3
7 int enumInt = (int)Enum_Type.發送失敗;
8 //獲取枚舉類型的字符串,結果為發送失敗
9  string enumString = Enum_Type.發送失敗.ToString();

四、controller中參數設置為可為空的方法

1         [HttpPost]
2         public ActionResult test(string userName,DateTime? startTime)
3         {
4             DateTime dt = startTime == null ? DateTime.Now : startTime.Value;
5             return Content("成功");
6         }

使用場景:參數startTime可以傳也可以不傳

技術分享圖片

五、計算分頁頁數需要用到的方法

1    //總頁數
2      decimal d = (decimal)((decimal)roleList.Count / length);
3      roleList = roleList.OrderBy(r => r.OrderNo).Skip((start - 1) * length).Take(length).ToList();
4      int pageCount = Convert.ToInt32(Math.Ceiling(d));
5      result.PageCount = pageCount;

六、webapi

(1)webapi中action的名稱要以Get或者Post開頭,來說明是用的HttpPost還是HttpGet。

(2)參數要通過[FromBody]傳遞,如果直接寫string para,反而接收不到。

1         public string PostLogin([FromBody] PostData data)
2         {
3             return "登錄成功";
4         }

PostData類裏放需要的參數

 1         /// <summary>
 2         /// 參數
 3         /// </summary>
 4         public class PostData
 5         {
 6             /// <summary>
 7             /// 用戶名
 8             /// </summary>
 9             public string userName { get; set; }
10 
11             /// <summary>
12             /// 密碼
13             /// </summary>
14             public string password { get; set; }
15         }

寫在後面的話:都是一些基本的功能,但是自己總是記不住,每次用每次需要查閱。現在記錄下來方便自己進行查看。

MVC學習筆記(六)---遇到的小問題匯總