0

これが私が達成しようとしていることです。

基本的に、、、、、、、およびを含むモデルCurrencyがあります。IDNameBuyValueMidValueSellValueDateCreated

今、思いついたコンバーターでそれらを使用したいと思います。2 つのドロップダウン リストがあり、最初の ddl は変換の通貨で、2 番目の変換元は通貨です。定期的なもの。

最初の ddl は常に ddlName内のテキストおよび値として含む必要がありますが、2 番目の ddl は常にテキストとしておよび値としてBuyValue含む必要があります。簡単な HTML 用語で言えば、このようなものです。NameSellValue

<select id="ddlFirst">
    <option value="BuyValue1">Name1</option>
    <option value="BuyValue2">Name2</option>
    ...
</select>
<select id="ddlSecond">
    <option value="SellValue1">Name1</option>
    <option value="SellValue2">Name2</option>
    ...
</select>

もちろん、これはコードではなく、上記の説明を明確にするためのものです。
私はこの問題についてかなりの初心者であり、文字通りどこから始めればよいかわかりません。私が最も興味を持っているのは、これらの値を何らかの方法で異なるモデルに分離し、それらからビューモデルを作成するか、または何らかの方法でそれらを使用できるかということです。正直なところ、私はかなり混乱しているので、助けていただければ幸いです。

アップデート

var currencies = db.Currencies.Where(c => c.DateCreated.Equals(today));
var list = currencies.Select(s => new { s.ID, s.Name, s.BuyValue, s.SellValue }).ToList();

var model = new ConverterViewModel
{
    FromValues = list.Select( x => new SelectListItem { Value = x.BuyValue.ToString(), Text =  x.Name}),
    ToValues = list.Select(x => new SelectListItem { Value = x.SellValue.ToString(), Text = x.Name }),
};

ただし、これは空になります。:(そして、そうではないことを私は知っています。

4

1 に答える 1

5

私が最も得意とするのは、これらの値を何らかの方法で異なるモデルに分離し、それらからビューモデルを作成するか、それとも何らかの方法でそれらを使用できるかということです。

はい、もちろん、ビューモデルを定義する必要があります。

public class MyViewModel
{
    public string From { get; set; }
    public IEnumerable<SelectListItem> FromValues { get; set; }

    public string To { get; set; }
    public IEnumerable<SelectListItem> ToValues { get; set; }
}

次に、コントローラーアクションでこのビューモデルにデータを入力し、ビューに渡します。

public ActionResult SomeAction()
{
    var currencies = _db.Currencies.ToList();
    var model = new MyViewModel
    {
        FromValues = currencies.Select(x => new SelectListItem { Value = x.BuyValue.ToString(), Text = x.Name }),
        ToValues = currencies.Select(x => new SelectListItem { Value = x.SellValue.ToString(), Text = x.Name })
    };
    return View(model);
}

そして最後に、強く型付けされたビューがあります。

@model MyViewModel

<div>
    @Html.LabelFor(x => x.From)
    @Html.DropDownListFor(x => x.From, Model.FromValues)
</div>
<div>
    @Html.LabelFor(x => x.To)
    @Html.DropDownListFor(x => x.To, Model.ToValues)
</div>
于 2012-10-19T08:45:41.580 に答える