0

JQueryダイアログを開くMVCビューがあります。次に、この JQuery ダイアログから別の JQuery ダイアログを開きます。

ajax 呼び出しを使用して、ビューから最初のダイアログにデータを渡します。このデータを最初のダイアログ ビューに表示します。このビューは読み取り専用です。最初のダイアログから別のダイアログを開き、ajax 呼び出しを使用してデータを渡します。2 番目のビューは、データを変更します。

2 番目のフォーム/ダイアログを送信するときに、javascript メソッド updateData を呼び出します

@using (Ajax.BeginForm("SaveData", "GenericData", new AjaxOptions{
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
OnSuccess = "updateData"}, new { @id = "Adddt", enctype = "multipart/form-data" }))

この JavaScript メソッドでは、2 番目のダイアログから送信された変更済みデータを取得します。そこで、最初のダイアログの HTML 要素を次のように変更します。

function updateData(data)
{
    //set the grid values
    document.getElementById('tdnewdate').innerHTML = data.Object.DateFound;                     
     //set the model data
    document.getElementById('txtnewdate').value = data.Object.DateFound; 
}

最初のダイアログ ビューには、次のようなコードが含まれています。

<td id="tdnewdate” >
@Model.DateFound
</td>
<td>
@Html.TextBoxFor(model => @Model.DateFound, new { id = "txtnewdate", style = "display:none" })
</td>

最初のステートメントは、フォームの HTML 要素を変更して、変更された値を表示します。ただし、2 番目のステートメントはモデルを変更する必要があります。

最初のダイアログを送信すると、モデルが変更されていることがわかります。ただし、最初のダイアログを再度編集しようとすると、変更されたモデルの値ではなく、元のモデルの値が取得されます。

誰かが私が間違っていることを提案してください。

ありがとう、

4

0 に答える 0