2

読み取り専用に設定された TextBoxFor があり、現在、人の姓を保持しています。私が今しなければならないことは、人の接尾辞 (II、III、Sr.、Jr. など) が姓の横のテキスト ボックスに表示されるように追加することです。これは私がこれまで姓だけで持っているものです。サフィックス部分 (m.Person.Suffix) を追加する方法がわかりません。私が試したことはすべてエラーを引き起こしました。

<div class="control-group">
    <label>Last Name</label>
    <div class="controls">
        @Html.TextBoxFor(m => m.Person.LastName, new { @readonly = "readonly" })
    </div>
</div>
4

2 に答える 2

2

これを行う1つの可能性は、これが常に読み取り専用である場合、これをモデルに追加することです:

public string LastNameWithSuffix
{
    get { return String.Format("{0} {1}", Person.LastName, Person.Suffix); }
}

次に、テキスト ボックス内のコードを変更して、m.LastNameWithSuffix を直接参照することができます。

<div class="control-group">
    <label>Last Name</label>
    <div class="controls">
        @Html.TextBoxFor(m => m.LastNameWithSuffix, new { @readonly = "readonly" })
    </div>
</div>
于 2014-12-16T19:23:17.193 に答える
0

これは、ビューモデルを使用することによってのみ達成できると思います。コントローラーでは、元のデータ モデルを渡す代わりに、(ビューで使用される) ビューモデルを渡し、ビューモデルのエンティティの 1 つに組み合わせが含まれます。

public class ViewModel
{

public string LastName {get; set;}
public string Suffix {get; set;}
public string Combo {get; set;

//rest of data needed for view
}

他の方法もあるかもしれませんが、これが私のアプローチ方法です。

于 2014-12-16T19:23:44.077 に答える