47

以下のように JavaScript でモデル値を更新したいのですが、うまくいきません。

function updatePostID(val)
{
    @Model.addcomment.PostID = val;
}

以下に示すようにRazorビューで

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 でモデル値を割り当てる方法を誰か教えてもらえますか?

4

3 に答える 3

62

これはうまくいくはずです

function updatePostID(val)
{
    document.getElementById('PostID').value = val;

    //and probably call document.forms[0].submit();
}

次に、隠しフィールドまたはその他のコントロールを用意しますPostID

@Html.Hidden("PostID", Model.addcomment.PostID)
//OR
@Html.HiddenFor(model => model.addcomment.PostID)
于 2013-04-23T16:51:35.770 に答える
1

jQuery と Ajax 呼び出しを使用して、特定の更新を Javascript でサーバーに戻すことができます。

次のようになります。

function updatePostID(val, comment)
{

    var args = {};
    args.PostID = val;
    args.Comment = comment;

    $.ajax({
     type: "POST",
     url: controllerActionMethodUrlHere,
     contentType: "application/json; charset=utf-8",
     data: args,
     dataType: "json",
     success: function(msg) 
     {
        // Something afterwards here

     }
    });

}
于 2013-04-23T17:01:11.143 に答える