遍歷我有我創建一個視圖模型文件:不能使用的foreach通過視圖模型
public class MyViewModel
{
public string AString { get; set; }
public string BString { get; set; }
public string CString { get; set; }
public string DString { get; set; }
public DateTimeOffset ADate { get; set; }
public DateTimeOffset BDate { get; set; }
}
我試圖運行foreeach語句來遍歷通的項目,但我得到
MyViewModel不包含
GetEnumerator
這裏一個公共定義是我的發言,試圖使用它:
public ActionResult MyMethod(MyViewModel model)
{
foreach(var item in model)
{
//add code here
}
}
我不知道爲什麼會發生這種情況,任何人都可以幫忙嗎?
編輯:viewmodel正在接受通過AJAX獲取調用傳遞給它的數據。我只是填寫必要的字段。我這樣做是因爲我不想有一個方法接受超過20個參數inline(string a,string b,string c,...)。製作具有所有可能字段的視圖模型更有意義,並且AJAX調用將相應地填充這些字段。之後我想要做的是將這些值傳遞給服務,但必須稍作改動才能使用舊服務。
服務預計:
serviceName(ID, GUID, NAME, parameters)
ID - string
GUID - GUID
NAME - string
parameters - new parameter { name = "[model.Name]", value = new List<string>(){ "[model.value]" }}
的〔model.Name]和[model.Value]是通過迭代「如果使用正確的術語」直通我創建以填充這些時隙模型填充。
由於MyViewModel不是IEnumerable。如果你想循環遍歷模型中的所有成員,你需要明確或通過反射來完成。我不確定你想在循環中完成什麼,如果你正在進行驗證,你需要根據字段包含的內容來做到這一點,並且在那時你最好爲每個成員編寫「if」語句。你想在循環內完成什麼? –
你能給我一個明確的例子嗎?我是學習C#和MVC的一個月。我正在構建要傳遞給endPoint的項目列表。 – seroth
代碼中沒有收集哪個循環。你想要在那個循環中做些什麼? – David