下記のようにJavaScriptのモデル値を更新したいのですが、動作しません。カミソリでRazorビューでJavaScriptのモデル値を更新するにはどうすればよいですか?
function updatePostID(val)
{
@Model.addcomment.PostID = val;
}
foreach(var post in Model.Post)
{
<br/>
<b>Posted by :</b> @post.Username <br/>
<span>@post.Content</span> <br/>
if(Model.loginuser == Model.username)
{
@Html.TextAreaFor(model => model.addcomment.Content)
<button type="submit" onclick="updatePostID('@post.PostID');">Add Comment </button>
}
}
以下のように誰もがJavaScriptでモデル値を割り当てる方法を教えてもらえます?見ますか
foreachループは生成されたHTMLは foreach post.getElementById( 'addcomment_PostID')。したがって、addcomment_PostIDが更新されるのはポイントであり、動作しません。 foreachの外に置いて、それは働いた。ありがとう。 – michaeld
PostIDにアクセスする方法はあなたの質問からは分かりません。複数の要素が生成された場合でも、それらの要素をどのように処理するかによって異なります。つまり、コントロールの配列または個別の要素です。後者の場合、 'Html.Hidden(" PostID _ "+ @ post.PostID)'を使う必要があります。これをJavaScript関数に渡すことができます。しかし、私はあなたが何をしようとしているかを完全に理解していると言うことができます。 ID /名前があらかじめわかっていないので、あなたのモデルに登場することはありません – codingbiz
モデルで値が更新されています – michaeld