我已經在代碼中看到過一次或兩次,但現在找不到示例。直到最近我還在webforms中工作,並已切換到MVC。我環顧四周,在這方面沒有發現很多。下面的代碼是從我的控制器獲取值並顯示在我的視圖模型中。我需要從MSMQ獲取m.body.MembersId。我知道問題是什麼,我只是不知道如何使用Linq。在同一行中鑄造和連接
情況,我需要在一條線上完成所有這些。將最初是名爲MembersId的列表的memberIds信息轉換回列表以顯示它,但也執行string.join,以便整個列表顯示爲一個字符串。雖然我知道如何自己做這兩件事,但在一條線上做的事情證明超越了我。我會公開承認我對linq相當陌生,並且正在學習。 這是類
public class MsgChildClass{
public string SourceSystem { get; set; }
public List<string> MemberIds { get; set; }
public string ParentId { get; set; }
public string Error { get; set; }
}
這是功能
public ActionResult GetAllMessages() {
string queueName = (ViewBag.QueueName != null) ? ViewBag.QueueName : Request.QueryString["queueName"];
Session["CurrentQueueName"] = queueName;
TempData["queueName"] = queueName;
ViewBag.QueueName = queueName;
var queue = _Queues[queueName];
queue.MessageReadPropertyFilter.ArrivedTime = true;
queue.MessageReadPropertyFilter.Body = true;
queue.Formatter = new JsonMessageFormatter();
var messages = queue.GetMessages();
var model = messages.Select(m =>
new ViewModel() {
Id = m.Id,
Date = m.ArrivedTime,
SourceSystem = ((MsgChildClass)m.Body).SourceSystem,
DeletedMemberIds = ((MsgChildClass)m.Body).DeletedMemberIds,//OrderByDescend(x => x); string.Join(",",((MsgChildClass)m.Body).DeletedMemberIds),
ParentMemberId = ((MsgChildClass)m.Body).ParentId,
Error = ((MsgChildClass)m.Body).Error,
QueName = queueName
}).ToList();
return Json(model.ToList(), JsonRequestBehavior.AllowGet);
}
視圖模型
public class ViewModel
{
[Required]
public string Id { get; set; }
//[Required]
[Display(Name = "Arrival Time")]
public DateTime Date { get; set; }
[Required]
[Display(Name = "Source System")]
public string SourceSystem { get; set; }
[Required]
[Display(Name = "Member Ids")]
public List <string> MemberIds { get; set; }
[Required]
[Display(Name = "Parent Member Id")]
public string ParentMemberId { get; set; }
[Display(Name = "Error")]
public string Error { get; set; }
[Display(Name = "QueName")]
public string QueName { get; set; }
}
這就是我。除了成員身份之外,所有的工作都正常。調試表明,成員身份有價值,但我沒有深入鑽研。所以希望有人可以幫助我,因爲在這一點上已經有很多小時了。谷歌很棒,但他沒有幫我解決這個問題。
你確定它不只是一個錯字嗎?你在'((MsgChildClass)m.Body).MemberIds'後面缺少''''。 –
@Joel什麼類型是((MsgChildClass)m.Body).MemberIds'?你現在的代碼有什麼問題? – har07
@AlexanderDerck那只是從錯誤複製和粘貼輸入錯誤 – Joel