2012-02-01 7 views
0

razorビューエンジンを使用しています。私もYahoo User Interface 2 (YUI2)simple editorを使用しています。ビューモデルからYUIシンプルエディタで更新されたコンテンツを取得する方法

私のビューのビューモデルはProductEditViewModelです。私は、この入力フィールドからYUI2シンプルなエディタを作成することになり、私の見解では

public string LongDescription { get; set; } 

:このビューモデルでは、私はとして定義されたプロパティを持っています。私はlongDescription変数の内容を表示すると、それからの値が含まれている必要があり

[Authorize] 
[HttpPost] 
[ValidateInput(false)] 
public ActionResult Edit(ProductEditViewModel viewModel) 
{ 
    if (!ModelState.IsValid) 
    { 
      // Check if valid 
    } 

    // I added this as a test to see what is returned 
    string longDescription = viewModel.LongDescription; 

    // Mapping 
    Product product = new Product(); 
    product.InjectFrom(viewModel); 

    // Update product in database 
    productService.Update(product); 

    return RedirectToRoute(Url.AdministrationProductIndex()); 
} 

:ここ

<td>@Html.TextAreaFor(x => x.LongDescription, new { cols = "75", rows = "10" })<br> 
    @Html.ValidationMessageFor(x => x.LongDescription) 
</td> 

私の編集アクションメソッドの部分図である。フィールドは、等がビューで定義されています編集者。エディターで内容を編集すると、longDescriptionには元の内容のみが含まれ、更新された内容は含まれません。どうしてこれなの?

答えて

0

私はどこかPOSTアクションで、あなたがこのような何か書かれていると思われる。このような場合、あなたはあなたがHTMLので、それを修正する前にModelStateから値をクリアしていることを確認する必要があり

[Authorize] 
[HttpPost] 
[ValidateInput(false)] 
public ActionResult Edit(ProductEditViewModel viewModel) 
{ 
    ... 
    viewModel.LongDescription = "some new contents"; 
    return View(viewModel); 
} 

をヘルパーは常に最初にモデル状態からの値を使用し、次にモデルからの値を使用します。 LongDescriptionに依存

ビューが表示されている
ModelState.Remove("LongDescription"); 
viewModel.LongDescription = "some new contents"; 
return View(viewModel); 

さて、HTMLヘルパー:

だから毎回手動でPOSTアクション内部のビューモデルのいくつかのプロパティを変更しようとするあなたがにModelStateからそれを削除してくださいプロパティは、最初にユーザーが送信した値を使用する代わりに、新しい値を選択します。

+0

アクションメソッドでLongDescriptionの内容を変更したくありません。私は、それをビューモデルから取得し、データベースに直接書きたいと思っています。 –

+1

@BrendanVogt、次に 'viewModel.LongDescription'を使用すると、POSTされた値を取得できるはずです。このアクションを呼び出すときにFireBugでどの値が送信されているかを確認してください。 –

+0

ビューモデルへのテキストの更新を妨げているYUIであるかどうかはわかりませんが、フォームを投稿すると、更新された値がビューモデルに表示されませんでした。リッチテキストエディタ用のjQueryプラグインを試してみましたが、これは完全に機能します。 –

関連する問題