0

これは非常に単純な問題だと思いました。考えすぎかもしれませんが、日付文字列だけをビューに渡す方法がわかりません。エンティティ フレームワーク コードのファースト クラスは次のとおりです。

public class Onus
{
public virtual int Id { get; set; }
public virtual string Title { get; set; }
[MaxLength(140)]
public virtual string Description { get; set; }
public virtual string Details { get; set; }
public virtual DateTime? DueDate { get; set; }
public virtual string Status { get; set; }
}

そして、ここに私がそれを変更したいコントローラの部分があります:

public Onus GetOnus(int id)
{
var onus = db.Onuses.Find(id);

if (onus == null)
{
    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return onus;
}

ビューでは、データを表示するためにいくつかの ajax と javascript テンプレートを使用しています。そのコードが必要な場合は、追加します。

***編集

明確でなくて申し訳ありませんが、これを操作するコントローラーは実際にはありません。すべて ajax で行われます。

var getOnus = function (id) {
            return $.ajax(onusApiUrl + "/" + id)
        };

var viewOnus = function () {
            var id = getId(this);
            onusServer.getOnus(id).done(viewOnusDetails);
        };

var viewOnusDetails = function (onus) {
            var output = templates.onusDetails(onus);
            $("#onusDetailsOutput").html(output);
        };

それよりもはるかに多くの JavaScript がありますが、それはあなたが見る必要があるすべてだと思います。ああ、マークアップ:

<div id="Details">
<div id="detailsLeft">
    <input type="hidden" value="{{Id}}" id="detailsId" />
    <header>
        <p><span class="onusTitleDetails">{{Title}}</span><span id="close">X</span></p>
    </header>
    {{#if DueDate}}
    <p class="detailsLabel">Due Date</p>
    <p class="onusDueDate">{{DueDate}}</p>
    {{/if}}
    <p class="detailsLabel">Description</p>
    <p class="onusDescriptionDetails">{{Description}}</p>
    <p class="detailsLabel">Details</p>
    <p class="onusDetails">{{Details}}</p>
</div>
<div id="detailAction">
    <div class="editOnus hover">Edit</div>
    <div class="deleteOnus hover">Delete</div>
</div>
</div>
<div class="onusStatusDetails">{{Status}}</div>
4

2 に答える 2

1

ビューを呼び出しているコントローラーを確認すると便利ですが、次のようなものだと仮定します。

public ActionResult MyController(int id)
{
    Onus onus = GetOnus(int id);
    return View(onus.DueDate.HasValue ? 
                onus.DueDate.Value.ToShortDateString() : 
                "(null)");
}

これにより、短い日付文字列のみがモデルに渡され、次に宣言する必要があります

@model string
于 2012-08-02T04:30:18.717 に答える
0

エンティティに別のプロパティを追加してから、それにバインドするのはどうですか?

 public virtual DateTime? DueDate { get; set; }

 public string DueDateString
        {
            get { return DueDate != null ? DueDate.ToString() : string.Empty; }
        }
于 2012-08-02T20:29:12.987 に答える