相关疑难解决方法(0)

ASP.Net MVC Razor从DateTime属性中删除时间

我正在使用Razor Views开发ASP.Net MVC 3 Web应用程序.我有以下ViewModel,它传递给我的Razor View并迭代以显示记录列表.

视图模型

public class ViewModelLocumEmpList
{
    public IList<FormEmployment> LocumEmploymentList {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

视图

<table>
  <tr>
   <th>Employer</th>
   <th>Date</th>
   </tr>
    @foreach (var item in Model.LocumEmploymentList) {
      <tr>
        <td>@item.employerName</td>
        <td>@item.startDate</td>
      </tr>
      }
      </table>
Run Code Online (Sandbox Code Playgroud)

我的问题是这条线

@Html.DisplayFor(modelItem => item.startDate)
Run Code Online (Sandbox Code Playgroud)

返回这样的日期20/06/2012 00:00:00,我希望它删除时间,只显示日期,即20/06/2012.

我试过添加

@Html.DisplayFor(modelItem => item.startDate.Value.ToShortDateString())
Run Code Online (Sandbox Code Playgroud)

DisplayFor(modelItem => item.startDate.HasValue ? item.startDate.Value.ToShortDateString(): "")
Run Code Online (Sandbox Code Playgroud)

但是,它们都在运行时返回以下错误消息

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Run Code Online (Sandbox Code Playgroud)

我在这里看了Darin Dimitrov的回答使用razor转换DateTime格式

但是,我无法访问ViewModel中的startDate属性,我的ViewModel返回一个Formistmployment对象的IList,您可以在上面看到它.

如果有人对如何从日期时间属性中删除时间有任何想法,那么我将非常感激. …

datetime razor asp.net-mvc-3

13
推荐指数
2
解决办法
4万
查看次数

检查DateTime类型的值在视图中是否为空,如果为null则显示为空

从我的控制器我已经通过值模块来查看

    public ActionResult Details(long id, string owner)
    {
        var module = _ownedModuleRepository.GetModuleDetails(id, owner);

        return View(module);
    }
Run Code Online (Sandbox Code Playgroud)

我已经在视图中显示了它包含的值如下

    <dt>ID</dt>
    <dd>@Model.Id</dd>

    <dt>Module ID</dt>
    <dd>@Model.ModuleId</dd>

     <dt>Owner</dt>
    <dd>@Model.Owner</dd>

    <dt>Module Type</dt>
    <dd>@Model.TypeName</dd>

    <dt>Module Kind</dt>
    <dd>@Model.KindName</dd>

    <dt>Ownership Start Date</dt>
    <dd>@Model.Start</dd>

    <dt>Ownership End Date</dt>
    <dd>@Model.End</dd>

    @foreach (var properties in Model.Properties)
    {
        <dt>Property Name</dt>
        <dd>@properties.Name</dd>
        <dt>Property Value</dt>
        <dd>@properties.Value</dd>
    }
Run Code Online (Sandbox Code Playgroud)

目前@ Model.End为null,它是DateTime类型,我在viewmodel中将其设置为可为空.因为它是null,所以我正在看到它

在此输入图像描述

如您所见,所有权结束日期的值是从下面获取属性名称的值.如果@ Model.End为null,如何将其设置为空

编辑1:

我的模特

public class OwnedModuleDetails
{
    public long Id { get; set; }

    public string ModuleId { get; set; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc nullable view asp.net-mvc-4

4
推荐指数
2
解决办法
1万
查看次数

如何格式化MVC 5 Razor中的日期

我的剃刀代码中有一个表,它循环遍历模型中的所有项目,并为每个项目创建一个表格行.我试图找出如何将日期格式化为MM/dd/yyyy而不是默认的"MM/dd/yyyy HH:mm:ss"格式.

<table class="table-condensed">
    <thead>
        <tr>
            <th>Company</th>
            <th>Contract No</th>
            <th>Description</th>
            <th>Expires</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@Html.ActionLink(@item.CompanyName, "ViewContract", new { contractID = @item.ID }) </td>
                <td width="200">@item.ContractNumber</td>
                <td>@item.Description</td>
                <td>@item.ExpireDate</td>
            </tr>
            }
    </tbody>    
</table>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了@ item.ExpireDate.ToString("MM/dd/yyyy")但是它会抛出一个错误,说明.ToString没有参数.

asp.net-mvc date razor asp.net-mvc-5

3
推荐指数
2
解决办法
8308
查看次数

在MVC中格式化可为空的DateTime字段

我试图更改datetime表中可空字段的格式,以便以格式显示ddd dd mmm yyyy.我尝试过使用DateTime.ToString("ddd dd mmm yyyy),DateTime.Value.ToString("ddd dd mmm yyyy")但是都没有用过.

<td>
  @Html.DisplayFor(modelItem => item.DailyReportDate)
</td>
Run Code Online (Sandbox Code Playgroud)

任何意见,将不胜感激.

c# model-view-controller asp.net-mvc

-1
推荐指数
1
解决办法
1万
查看次数