1

これを使用して、フレームワークで生成されたIDをオーバーライドしましたが
@Html.EditorFor(model => model.cost, new { id = "checkCost" })
、残念ながらidは変更されていません。つまり、コントローラーアクションで
使用する場合
string d = Request.Form["checkCost"];
、文字列はnull値で埋められます。
どうして??また、EditorForをTextBoxForに置き換えましたが、何も変更されていないため、コントローラーも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>



更新しました:

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

    を保持します。
  • [Column( "check_cost")]

public Nullable cost {get; セットする; }
しかし、なぜこれが機能しないのかわからない、つまり、プロパティnaemが次のように参照しているときに変更されない

model.something 
4

2 に答える 2

0

尋ねられた質問に具体的に答えるには、これを試してください:

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

わずかな (しかし重要な) 違いに注意してください: ... new { @id = "checkCost" })

于 2016-12-07T03:40:02.347 に答える
0

プロパティ CheckCost と PackageCost を使用して 2 つのビュー モデルを作成し、その方法で分離します。

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

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

このようにして、競合を回避します。

于 2011-12-21T11:21:56.073 に答える