如題,當從Controller rturn(Model); 的時候資料會傳到View上,此時可以透過以下的方法將ViewModel的資料轉成Javascript的資料 以便於Alert
<script>
var jsObject = @Html.Raw(Json.Encode(Model))
alert(jsObject.QueryResult[0].mapping_tablename);
</script>
這邊要注意的是 當轉成 jsObject 的json物件時,如果要撈取對應的資料方法與在Model中Class呼叫的方法一致,以下是我在該範例的ViewModel。
//===================== 我的ViewModel - 第一層
public class LeaderboardResultTDDCModel
{
//頁面的查詢時間等資訊
public LeaderboardTDDCQueryParam QueryInfom { get; set; }
//股票搜尋結果類別表
public List<LeaderboardTDDCModel> QueryResult { get; set; }
}
//===================== 我的ViewModel - 第二層 QueryResult
public class LeaderboardTDDCModel
{
//股票對應表資料名稱
public string mapping_tablename{ get; set; }
//上升 六周計算
public double RetailRate { get; set; }
/// <summary>
/// 各期散戶資料(50以下)
/// </summary>
public string RetailEachOfData { get; set; }
//下降 六周計算
public double LaregeRate { get; set; }
/// <summary>
/// 各期大戶資料(800以上)
/// </summary>
public string LaregeEachOfData { get; set; }
}
2016年5月30日 星期一
2016年5月23日 星期一
C# ASP.net MVC 前端javascript傳遞到後端Controller 二維陣列傳遞方法
原始程式碼如下:
var MaxGroup = 5;//群組數量
var obj = [[]]; //===========================錯誤位置
var tempGroupName = [];
for (var i = 1; i < MaxGroup + 1; i++)
{
var tempStateList = [];
//get checkbox
for (var j = 1 ; j < 16; j++) {
tempStateList.push($("#autokind_" + i + "_" + j).is(":checked"));
}
obj.push(tempStateList)
tempGroupName.push($("#autokind_name_"+i).val());
}
var StoragePlaceParam = {
'TableName': Param.TableName, //--使用者查詢的TableName
'Date_Start': Param.Date_Start,
'Date_End': Param.Date_End,
'Combination': obj,
'GroupName': tempGroupName,
'GroupCount': 5
};
//------我們家的網址
var root = "http://" + location.host;
if (location.host.indexOf("localhost") == -1) {
root = "http://" + location.host + "/" + location.pathname.split('/')[1];
}
$.ajax({
type: 'POST',
url: root + "/api/SingleStockApi/GetSingleStockExtentionKindChart",
data: StoragePlaceParam, //------------------------參數丟入
success: function (data) {
}
});
以上透過Ajax 傳遞到後端後發生Combination 為null
在後端的Combination 型別為 List<List<bool>> 理論上應該要有值,後來發現是因為
var obj = [[]]; 不可以這樣寫 應該 寫成
var obj = [];
var obj =[[]] 實際上為 array = [[null]]
在傳遞到後端時因為判斷到null 所以List<List<bool>> 會直接視為全為null
如果定義成obj =[] 實際上為 array = []
//=====================
2016年5月3日 星期二
C# MVC 3 以上 RenderSection 用法說明
RenderSection 用法說明:當頁面載入時會有順序問題,如果不加入section scripts 就在layout.html寫script將會發生錯誤,因為jquery pluging 尚未載入,所以加入section scripts後就會在plugin載入後才呼叫script
=====================================
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
@section scripts{
<script>
alert('123');
</script>
}
2016年5月2日 星期一
C# MVC SQLSERVER 矩陣轉置 - 靜態的行轉列
SQL 行轉列-靜態的行轉列
當在處理得到的集保戶庫存資料時,需要將資料Level (籌碼級距)做分類時就需要進行行轉列,如下圖原始資料
要將1 ~ 15 Level 的資料分類並且依照時間做條件,SQL如下
/****** SSMS 中 SelectTopNRows 命令的指令碼 ******/
SELECT [Year],[Month],[Day],
SUM(CASE [Level] WHEN N'1' THEN [CHEP] ELSE 0 END) "Level1",
SUM(CASE [Level] WHEN N'2' THEN [CHEP] ELSE 0 END) "Level2",
SUM(CASE [Level] WHEN N'3' THEN [CHEP] ELSE 0 END) "Level3",
SUM(CASE [Level] WHEN N'4' THEN [CHEP] ELSE 0 END) "Level4",
SUM(CASE [Level] WHEN N'5' THEN [CHEP] ELSE 0 END) "Level5",
SUM(CASE [Level] WHEN N'6' THEN [CHEP] ELSE 0 END) "Level6",
SUM(CASE [Level] WHEN N'7' THEN [CHEP] ELSE 0 END) "Level7",
SUM(CASE [Level] WHEN N'8' THEN [CHEP] ELSE 0 END) "Level8",
SUM(CASE [Level] WHEN N'9' THEN [CHEP] ELSE 0 END) "Level9",
SUM(CASE [Level] WHEN N'10' THEN [CHEP] ELSE 0 END) "Level10",
SUM(CASE [Level] WHEN N'11' THEN [CHEP] ELSE 0 END) "Level11",
SUM(CASE [Level] WHEN N'12' THEN [CHEP] ELSE 0 END) "Level12",
SUM(CASE [Level] WHEN N'13' THEN [CHEP] ELSE 0 END) "Level3",
SUM(CASE [Level] WHEN N'14' THEN [CHEP] ELSE 0 END) "Level4",
SUM(CASE [Level] WHEN N'15' THEN [CHEP] ELSE 0 END) "Level5"
FROM [BochenLinTest].[dbo].[TDDC_9938]
Group By [Year],[Month],[Day]
order by Year,Month,day desc
結果圖片如下:
資料將會依照年月日,由小排到大,並且級距的資料變成Level 1~ 15
當在處理得到的集保戶庫存資料時,需要將資料Level (籌碼級距)做分類時就需要進行行轉列,如下圖原始資料
要將1 ~ 15 Level 的資料分類並且依照時間做條件,SQL如下
/****** SSMS 中 SelectTopNRows 命令的指令碼 ******/
SELECT [Year],[Month],[Day],
SUM(CASE [Level] WHEN N'1' THEN [CHEP] ELSE 0 END) "Level1",
SUM(CASE [Level] WHEN N'2' THEN [CHEP] ELSE 0 END) "Level2",
SUM(CASE [Level] WHEN N'3' THEN [CHEP] ELSE 0 END) "Level3",
SUM(CASE [Level] WHEN N'4' THEN [CHEP] ELSE 0 END) "Level4",
SUM(CASE [Level] WHEN N'5' THEN [CHEP] ELSE 0 END) "Level5",
SUM(CASE [Level] WHEN N'6' THEN [CHEP] ELSE 0 END) "Level6",
SUM(CASE [Level] WHEN N'7' THEN [CHEP] ELSE 0 END) "Level7",
SUM(CASE [Level] WHEN N'8' THEN [CHEP] ELSE 0 END) "Level8",
SUM(CASE [Level] WHEN N'9' THEN [CHEP] ELSE 0 END) "Level9",
SUM(CASE [Level] WHEN N'10' THEN [CHEP] ELSE 0 END) "Level10",
SUM(CASE [Level] WHEN N'11' THEN [CHEP] ELSE 0 END) "Level11",
SUM(CASE [Level] WHEN N'12' THEN [CHEP] ELSE 0 END) "Level12",
SUM(CASE [Level] WHEN N'13' THEN [CHEP] ELSE 0 END) "Level3",
SUM(CASE [Level] WHEN N'14' THEN [CHEP] ELSE 0 END) "Level4",
SUM(CASE [Level] WHEN N'15' THEN [CHEP] ELSE 0 END) "Level5"
FROM [BochenLinTest].[dbo].[TDDC_9938]
Group By [Year],[Month],[Day]
order by Year,Month,day desc
結果圖片如下:
資料將會依照年月日,由小排到大,並且級距的資料變成Level 1~ 15
訂閱:
文章 (Atom)