rar*_*bar 1 asp.net-mvc json asp.net-mvc-3 asp.net-mvc-2 asp.net-mvc-4
我使用Asp.net MVC4(C#),我想从控制器加载数据来查看.从控制器中返回一个对象,该对象具有TimeSpan类型的属性(HH:DD:MM)这是我的函数:
public JsonResult Buscar(string id){
string Mensaje = "";
Models.cSinDenuncias oDenuncia = new Models.cSinDenuncias();
oDenuncia.sd_iddenuncia = id;
var denuncia = Servicio.RecuperaDenuncia<Models.cSinDenuncias>(ref Mensaje, oDenuncia.getPk(), oDenuncia);
return Json(denuncia);
}
Run Code Online (Sandbox Code Playgroud)
denuncia.sd_horadenuncia例如有这个值18:03:53但是当我在视图中显示这是值[OBJECT OBJECT]时,我无法加载此值在视图中(Html.TextBoxFor):
$('#HoraDen').val(data.sd_horadenuncia);
Run Code Online (Sandbox Code Playgroud)
我如何才能恢复正确的价值?(HH:MM:SS)而不是[OBJECT OBJECT]
问候里卡多
TimeSpan是一种复杂类型.这意味着在您的JSON中它被序列化为:
{
"sd_horadenuncia": {
"Ticks": 3000000000,
"Days": 0,
"Hours": 0,
"Milliseconds": 0,
"Minutes": 5,
"Seconds": 0,
"TotalDays": 0.003472222222222222,
"TotalHours": 0.08333333333333333,
"TotalMilliseconds": 300000,
"TotalMinutes": 5,
"TotalSeconds": 300
}
}
Run Code Online (Sandbox Code Playgroud)
您正在尝试将此复杂对象分配给文本字段,这显然没有意义.
您可以在控制器操作上使用视图模型来预格式化值:
public ActionResult Buscar(string id)
{
string Mensaje = "";
Models.cSinDenuncias oDenuncia = new Models.cSinDenuncias();
oDenuncia.sd_iddenuncia = id;
var denuncia = Servicio.RecuperaDenuncia<Models.cSinDenuncias>(ref Mensaje, oDenuncia.getPk(), oDenuncia);
return Json(new
{
formattedHoradenuncia = denuncia.sd_horadenuncia.ToString()
});
}
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中,您可以使用新属性:
$('#HoraDen').val(data.formattedHoradenuncia);
Run Code Online (Sandbox Code Playgroud)
另一种可能性是访问此复杂对象的各个属性并自行格式化值:
var hours = data.sd_horadenuncia.Hours;
var minutes = data.sd_horadenuncia.Minutes;
var seconds = data.sd_horadenuncia.Seconds;
$('#HoraDen').val(hours + ':' + minutes + ':' + seconds);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1705 次 |
| 最近记录: |