c# - C# 将列表从 json 传递到 viev,并显示在一个文本框中
问题描述
在我的代码中,我想在 Json 列表中返回三个日期。
与此类似的东西:
DateTime? localDate = DateTime.Now;
DateTime?[] dateTimes = new DateTime?[]
{
localDate,
localDate,
localDate
};
return Json(dateTimes);
我想在文本框中的视图中显示这些数据,如果这个日期用逗号分隔,那就太好了。我只知道如何在 c# 中执行此操作,并且只传递一个字符串,但我的代码太多。也许是另一种更好的方法来做到这一点。
解决方案
不确定您的Json()
方法在做什么以及为什么不只是使用:
JsonConvert.SerializeObject();
但是要将您的 3 个日期数组转换为 Json 字符串,您只需执行以下操作:
var json = JsonConvert.SerializeObject(dateTimes, Formatting.Indented);
这将导致以下字符串:
[
"2021-09-27T10:11:11.7616692+00:00",
"2021-09-27T10:11:11.7616692+00:00",
"2021-09-27T10:11:11.7616692+00:00"
]
或者...
如果您只想将 3 个日期放入以逗号分隔的字符串中,您可以执行以下操作:
var datesString = string.Empty;
dateTimes.ToList().ForEach(date => {
datesString += $"{date},";
});
dateString = dateString.Remove(dateString.LastIndexOf(","));
这将导致类似:9/27/2021 10:14:17 AM,9/27/2021 10:14:17 AM,9/27/2021 10:14:17 AM
就passing
返回视图而言,您应该Binding
在文本框上使用,例如:
<TextBox Text={Binding DatesString, Mode=OneWay}/>
然后在您的 ViewModel 中,将属性的值更改为DatesString
前面提到的代码的结果。
您的DatesString
财产看起来像这样:
private string _datesString;
public string DatesString
{
get => this._datesString;
set =>
{
this._datesString = value;
this.PropertyChanged(ref _datesString, value); //// Your NotifyPropertyChanged Event
}
}
推荐阅读
- jquery - AJAX 调用产生额外的记录而不是更新
- sql - 如何搜索表中两列的组合列表?
- spring - 使用 jdbcTemplate 返回 1 值的正确方法
- javascript - 如何使用导航栏创建单页应用程序?
- html - 如何从中心展开网格内的卡片列表?
- json - 如何通过循环JSON在golang中显示丢失的键?
- css - 为什么尝试添加背景图像时出现解析错误?
- mongodb - 如何修复“com.mongodb.MongoSocketOpenException:异常打开套接字”错误?
- excel - 将数值表达式从 Y 轴转换为 X 轴
- scala - Keep组合的意义?