2011-03-08 5 views
0

ビューバッグを使用してモデルにデータを渡すのが苦労しています。ここでビューバックのデータをCSHTMLのモデルに渡す方法

はあなたを啓発するためにいくつかの例です:

@model UCPBEscheatment.Models.aspnet_Membership 
@{ 
    ViewBag.Title = "AnswerForgotPassword"; 
} 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

@using (Html.BeginForm()) 
{ 
<em style="font-size:small">@Html.ValidationSummary(true, "Forgot Password was unsuccessful. Please correct the errors and try again.")</em> 
<fieldset style="background-color:#f0f0f0"> 
<legend> Forgot Password </legend> 
<br /> 
• Second step: <em style="color:Teal"> Answer your secret question</em> 
<br /><br /> 
<b> Secret Question:</b> @ViewBag.question 
<br /><br /> 
<b> Secret Answer: </b>@Html.EditorFor(a => a.PasswordAnswer) 
<br /><br />   
@{ 

     INPUT CODE HERE TO PASS A VALUE TO THE MODEL USING VIEWBAG LIKE: 

    ex. 
     @MODEL.USERID = VIEWBAG.USERID 

} 
<input type="submit" value="Submit" /> 


</fieldset> 


} 
+0

あなたの質問は何ですか? –

+0

私の質問は、直接モデルに値を渡すことができる方法です my @ Model.PasswordAnswer = ViewBag.answer 私のモデルに変数を明示的に渡したり宣言したりすることを望んでいます – sgolek

答えて

2

それはそのように動作しません。ポストに返されているモデルに割り当てることはできません。私はフォームのURLにユーザーのIDを追加し、パスワードの秘密を確認する必要があるユーザーを見つけるためにURL上のIDを使用することをお勧めします。

@using (Html.BeginForm("validatepassword","account",new { id = ViewBag.UserID })) 
{ 
    ... 
} 

いっそ、モデルにユーザーIDを設定し、ViewBagするのではなく、そこからそれを使用しますが、まだ戻ってポストへのURLでそれを使用。

+0

OMG http://stackoverflow.com/users/12950/tvanfosson本当にありがとう、それは本当に私をhahaha助けた 今私は私のパスワードを忘れたモジュールを行うことができます – sgolek

関連する問題