私はDevexpress MVC拡張機能を使用しており、できるだけ簡略化して別の問題を見つけようとしています。公式サイトによると動作するはずですが、セレクションの値はコントローラに渡されません。単純な登録フォームが選択された値を投稿していません
これは、モデルとコントローラである:
public class Fruit
{
public int value { get; set; }
public string name { get; set; }
}
public ActionResult Index()
{
var model = new object[1];
var fruits = new List();
fruits.Add(new Fruit() { value = 1, name = "Apple" });
fruits.Add(new Fruit() { value = 2, name = "Orange"});
fruits.Add(new Fruit() { value = 3, name = "Lemon"});
fruits.Add(new Fruit() { value = 4, name = "Pear" });
fruits.Add(new Fruit() { value = 5, name = "Cherry" });
model[0] = fruits;
return View(model);
}
とビュー:
@using (Html.BeginForm("Create", "Home"))
{
@Html.DevExpress().FormLayout(settings =>
{
settings.Name = "Myformlayout";
settings.Width = 600;
var gi = settings.Items.AddGroupItem(gs =>
{
gs.Caption = "TEST";
});
gi.Items.Add(item =>
{
item.Name = "fruits";
item.Caption = "Fruits";
item.NestedExtensionType = FormLayoutNestedExtensionItemType.ComboBox;
ComboBoxSettings cbset = (ComboBoxSettings)item.NestedExtensionSettings;
cbset.Properties.TextField = "name";
cbset.Properties.ValueField = "value";
cbset.Properties.ValueType = typeof(int);
cbset.Properties.DropDownStyle = DropDownStyle.DropDownList;
cbset.Properties.DataSource = Model[0];
});
gi.Items.Add(item =>
{
item.NestedExtensionType = FormLayoutNestedExtensionItemType.Button;
var btnset = (ButtonSettings)item.NestedExtensionSettings;
btnset.Name = "btnSubm";
btnset.Text = "Send to ctrl";
btnset.UseSubmitBehavior = true;
});
}).GetHtml();
選択が正常に動作しているが、「CTRLへ送信」ボタンがクリックされたときに私が取得"パラメータ辞書には、パラメータ 'id'のヌルエントリが含まれています。コントローラHome \ Createにはint idパラメータが必要です。コントローラのパラメータ要件をintに変更すると、呼び出しが行われます。
目標:選択された果物のid(値)をコントローラに送り返します。
私の見るところでは、IDのフィールドは表示されません。 Btw、Createアクションの実装方法 –
私はCreateを実装していないので、選択したテキストの値を渡す方法を理解したいだけです。 DevExpressのデモによると、これはドロップダウンリストを定義する方法であるため、これはうまくいくはずです。 – Paxsentry