2009-09-04 19 views
1

私は2つの値、1つはID、1つは「説明」であるデータベース内のレコードを更新したいと思います。 IDは決して変更できませんが、強く型付けされた機能を使用することに依存しています。だから、私は以下を持っています:無効なフォーム要素ASP.NET MVC更新

Inherits="System.Web.Mvc.ViewPage<Business>" 

これは、私がすべてを取り戻すことができるので、どんなに良いですか?それはBusinessIDを認識しないので、戻って順番にオブジェクトを上に結合問題を抱えている、コントローラにそれを渡しませんdisabled = "disabled"オプションを使用すると

<%= Html.TextBox("BusinessID", ViewData.Model.BusinessID, new { disabled = "disabled", style = "width:50px;", @class = "uppercase", maxlength = "4" })%> 

:私は次の行を使用するときに問題があります。

あなたがそれをする必要がありますことを

ないが、ここではコントローラのアクションです:なぜこれが起こっている

[HttpPost] 
public ActionResult EditBusiness(Business business) 
{ 
    if (!ModelState.IsValid) 
    return View(business); 
    // update business here 
    _contractsControlRepository.UpdateBusiness(business); 
    return RedirectToAction("Businesses"); 
} 

任意のアイデア?私はフォーム要素が無効になっているときにポストバックに完全に隠されていることを認識しませんでした。私はユーザーにその特定のフィールドを編集させたくありません。私もHtml.DisplayFor(b=>b.BusinessID)を試したことがあります。

答えて

3

この

Html.Hidden("BusinessID", ViewData.Model.BusinessID) 
<%=Model.BussinessID %> 

のようなディスプレイIDを使用すると、隠されたタグ に結合するためのIDを持つことになりますし、あなたがラベル に値が表示されますかあなたが欲しい何かを使用することができ、このようにヨーヨーは、あなたが常にどちらかのオプションを持っても、このよう

<input type="text" value="<%=Model.BussinessID %>" contentEditable="false"> 

を行うと、どこかの形で隠さ

+0

ビンゴ、ありがとう。 – Kezzer

+0

また、あなたが私に与えたことから、私のためにそれをやるヘルパーを作ることができます。 – Kezzer

0

代わりHtml.Textboxのあなたは

+0

griegsへの私のコメントを参照してください。 – Kezzer

0

あなたがIDを表示している特定の理由があるHtml.Hidden( "BusinessID"、ViewData.Model.BusinessID)を使用できますか?そうでない場合は、コントローラからTryUpdateModel()を単に使用してください。

あなたは何を求めているのですか?

編集

<%= Html.TextBox("name","value", null, new { style="readonly"}) %> 

編集2

あなたはそれを渡されたとして、あなたがIDを使用することができます//サイト/コントローラ/ yourbusinessid

のようなルートをやって考えるかもしれませんあなたのコントローラには、文字列として<%= Model.BusinessId %>を使ってください。

+0

私はIDを表示する必要がありますはい。 IDは整数値ではありません。ユーザーが手動で入力したvarcharフィールドで、編集中に画面上で確認する必要があります。その場合、 – Kezzer

+0

あなたのテキストボックスでnew {style = "readonly"}を使用できますか? – griegs

0

を置くことができますhtml要素を "ハードコーディング"するか、独自のhtmlヘルパーメソッドを作成してそれを行います。

public static string DisabledTextBox(this HtmlHelper helper, string name, object value) 
{ 
    return String.Format(@"<input type="text" name="{0}" id="{0}" disabled="disabled" value="{1}" />", name, value); 
} 
関連する問題