0
このdropDownListをバインドするのは苦労します。これは単なる状態のリストです。 Model.Stateは "TX"ですが、私のドロップダウンリストは "AK"を表示しています。これはリストの最初の値です。何かご意見は? LinqToSQLを使用して、私のDataContextのラッパーである私のmuniSyndクラスでは、 Html.DropDownlistFor selectedValue
<%: Html.DropDownListFor(
model => model.State,
new SelectList(
muniSynd.getStatecodesDropDown(),
"Value",
"Text",
Model.State.ToString().Trim()
)
)
%>
.....
public IList<StateCodeViewModel> getStatecodesDropDown()
{
var states = from p in this._MuniDc.Statecodes
select new StateCodeViewModel
{
Value = p.Statecode1.ToString().Trim(),
Text = p.Statecode1.ToString().Trim()
};
return states.ToList();
}
public class StateCodeViewModel
{
public string Value{get;set;}
public string Text{get;set;}
}
イムは、ここで私が試した
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Statecodes")]
public partial class Statecode
{
private string _Statecode1;
public Statecode()
{
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Name="Statecode", Storage="_Statecode1", DbType="NVarChar(3)")]
public string Statecode1
{
get
{
return this._Statecode1;
}
set
{
if ((this._Statecode1 != value))
{
this._Statecode1 = value;
}
}
}
}
最初に、これで多くの時間を過ごしていただきありがとうございます。 linqを使用するとき、私は状態が "TX"として返されることを認識しました。私はトリムがそれを世話すると思った。 viewModel.State = "TX"を変更した場合。スペースを含む<----、それはあなたのために働くのですか?私は直接LinqObjectに私のモデルをバインドしています。そして、おそらく私はViewModelにバインドする必要があります。私が正しく理解している限り、ViewModelの変数をlinqObjectの変数と同じ名前にしている限り、私は編集、更新コマンドを実行すると、私はupdateModel()を呼び出すことができ、フォームコレクションの値にマップされます。右? – Patrick
こんにちは。名前の整合性を保つなら、デフォルトのMVCモデルバインダーは、 'POST'の間に値をマッチさせることができます。トリムについては、動作していませんが、何が起こっているのか分かりません。コードはうまくいきます。なぜModel.Stateにまだスペースがあるのかわかりません。 –