ajaxボタンをクリックした後、メインビューで部分ビューを更新しようとしています。私は部分的なビューをステップし、モデルは正しい値を持っています。私はそれらをメインビューに表示するために値をhtmlで保存します。新しい値は表示されません。誰かが私を助けることができるかどうか疑問に思っていた。MVCの部分ビューが更新されましたが、メインビューに表示されません
ビューモデル:
namespace myApp.ViewModels
{
public class mrfResult
{
public string mrf { get; set; }
public string round { get; set; }
public string route { get; set; }
public string supplier { get; set; }
public string status { get; set; }
public string deadline { get; set; }
}
}
コントローラー:
[HttpPost]
public ActionResult RFInfo(RfInfo pRfInfo)
{
List<mrfResult> newResult = new List<mrfResult>();
.....
mrfResult nRow = new mrfResult();
nRow.mrf = pRfRow; nRow.round = pRfInfo.round; nRow.route = routeRow.ServiceId.ToString();nRow.supplier = supRow.name; nRow.status = statName; nRow.deadline = supRow.deadline.ToString();
newResult.Add(nRow);
.....
return PartialView("~/Views/RFMaster/_Partials/_GetRFDetails.cshtml", newResult);
}
部分図:
@model List<myApp.ViewModels.mrfResult>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
@section scripts {
<script src="~/Javascript/RFInfo.js"></script>
}
<div>
@{
string routeName = "(a - b)";
string servId = "";
if (Model != null) {
for (var i = 0; i < Model.Count; i++)
{
servId = Model[i].supplier;
break;
}
}
}
<span>@routeName</span><br />
<span>@servId</span><br />
<span>@routeName</span><br />
</div>
メインビュー:
@model List<myApp.ViewModels.mrfResult>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/multi-select/multiple-select.js"></script>
<link href="~/Scripts/multi-select/multiple-select.css" rel="stylesheet" />
<link href="~/CSS/css_RFInfo.css" rel="stylesheet" />
@section scripts {
<script src="~/Javascript/RFInfo.js"></script>
}
@{
int cnt = 0;
}
<body>
<div>
<h1>RF Information</h1>
............
<div class="contRfDetails">
@Html.Partial("~/Views/RFMaster/_Partials/_GetRFDetails.cshtml")
</div>
</div>
</body>
のjQuery:メインビューで
$(document).ready(function() {
$("#btnFind").click(function() {
var getRf = $("#ddlRf").val();
var getRound = $("#ddlRnd").val();
var getRoute = $("#ddlRte").multipleSelect('getSelects').toString();
var getSupp = $("#ddlSup").multipleSelect('getSelects').toString();
var getStat = $("#ddlStat").multipleSelect('getSelects').toString();
var params = {
'rf': getRf, 'route': getRoute, 'round': getRound, 'supp': getSupp, 'stat': getStat
};
var json = JSON.stringify(params);
$.ajax({
url: "../RFMaster/RFInfo",
type: "POST",
data: json,
cache: false,
async: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
traditional: true,
success: function (data) {
alert('Process Successful');
},
error: function() {
alert("Error")
}
});
});
});
最初の部分図表示を有するDIVロード:
( - B)
( - B)
正しい。
「btnFind」ボタンを押すと、コントローラのhttppostアクション結果関数が起動します。 jqueryパラメータに対してモデルが作成されます。モデルは部分ビューに送られます。部分ビューでモデルに対してループが実行されます。値の1つが検索され(sup1)、変数 'servId'に格納されます。その変数は、スパン '@servId
内に割り当てられます。
メインビューでdiv要素は次のようになります。
( - b)の
SUP1
( - b)の
しかし、私は戻って取得していますすべてをビューから元のデータです。
( - B)
( - B)
には、私はどこにも ''
へのAJAX呼び出しの結果を追加したコードが表示されません。 ajax呼び出しの成功セクションでは、 '$( '。contRfDetails')。append(data);' – Eric