2011-12-21 10 views
1

フレームワークで生成されたIDをオーバーライドするのにこれを使用しました
@Html.EditorFor(model => model.cost, new { id = "checkCost" })
しかし、残念ながらidは変更されません。すなわち
コントローラの動作時に
string d = Request.Form["checkCost"];
を使用すると、ヌル値で埋められた文字列です。
WHY ??私はまた、TextBoxForでEditorForを置き換えるが、何もコントローラが更新
asp.netのMVC3のエディタフォースのヘルパーのIDを設定する方法

<td > 
     @Html.DropDownList("check_master", "--select package--") 
    </td> 
    <td > 
     @Html.EditorFor(model => model.check_name) 
     @Html.ValidationMessageFor(model => model.check_name) 
    </td> 
    <td > 
     @Html.EditorFor(model => model.cost, new { id ="checkCost" }) 
     @Html.ValidationMessageFor(model => model.cost) 
    </td> 



IDとしてコストを要するも、その後変更されていない:

  • これは私の部分図であり、私のメインビューが(レンダリング(ajax.actionLinkから部分的に)EditorFor(model => mode.cost)も保持します
  • 部分ビューは、Check_masterテーブルとメインビデオに強く型付けされていますwはpackage_masterに強く入力されます。エンティティセットは両方とも同じ名前のプロパティ、つまり "COST"を保持します。次に、部分ビューとメインビューの両方を保持しますEditorFor "cost"

    check_masterプロパティの名前を
  • のように変更しようとしました
  • [Column( "check_cost" )]

public Nullable cost {get;セット; }
しかし、別離があります。このプロパティCheckCostとPackageCostで2つのビューモデルを作成し

model.something 
+0

:わずかな(しかし重要な)

@Html.EditorFor(model => model.cost, new { @id = "checkCost" }) 

注違いをIDを変更するには?デフォルトのIDを使用すると、デフォルトのモデル・バインディングが有効になりました。つまり、Request.Form ["cost"]はプロパティコスト – heads5150

+0

にバインドします。b'cozこれは私の部分的なビューで、私のメインビュー(ajax.actionLinkから部分的にレンダリング)にはEditorFor(model => mode.cost)も保持されます – RollerCosta

+0

同じビューの同じプロパティの2つのテキストボックスがありますか?基本的に同じプロパティを編集する場所は2つあります。テキストボックスが部分ビューにある場合は、メインビューから取り出します。 – heads5150

答えて

0

のようにそれを参照しながらプロパティnaemが変更されていない、すなわち動作していない理由を知っている道をいけない:

public class CheckViewModel{ 
    public string CheckCost{get;set;} 
} 

public class PackageViewModel{ 
    public string PackageCost{get;set;} 
} 

この紛争を回避する。

+0

@headsありがとうございます私の質問された文脈 – RollerCosta

0

特にこのしようと、尋ねた質問に答えるために:あなたが望むのはなぜ...新しい{@id = "checkCost"})

関連する問題