MVC ドロップダウン リストをレンダリングし、ドロップダウン リストの値が変更されるたびに部分ビューをレンダリングするページを作成しようとしています。部分ビューでボタンをクリックして部分ビューで行われた変更を保持するまで、問題なく動作しています。
私は私の部分的なビューのために次のコードを持っています -
<script type="text/javascript">
$(function () {
$("#sortable, #sortable2").sortable({
connectWith: ".connectedSortable"
}).disableSelection();
});
$(function () {
$("button").button();
$(".submit").click(function () {
var list = "somedata";
var companyid = $("#myid").text();
$.ajax({
url: "/Controller/Action",
data: {
'values': list,
'id': myid
}
});
});
});
</script>
......
<div class="submit">
<button>Submit</button>
</div>
これが私のメインビューのコードです-
<script type="text/javascript">
function processList() {
var myid = $("#ddList").val();
$.ajax({
url: 'Controller/Action/',
data: {
'id': myid
},
datatype: 'html',
success: function (result) { success(result); }
});
}
function success(result) {
$("#partial").html(result);
}
</script>
@using (Html.BeginForm("Action", "Controller"))
{
@Html.DropDownListFor(x => x.SelectedValue, Model.MyEntity, new { @id = "ddList", onchange = "processList();" })
<div id="partial" style="height: 90%">
@Html.Partial("_MyPartialView")
</div>
}
私のコントローラーからのコードは以下の通りです -
public ActionResult Action(int? id)
{
id = id ?? 1;
var vm = new MyViewModel
{
.....
};
return PartialView("_MyPartialView", vm);
}
public ActionResult PersistActivities(int myid, string values)
{
int result = _service.UpdateActivityOrderByCompany(companyid, values);
return new EmptyResult();
}
永続化ボタンをクリックしたときに、部分的なビューだけを再レンダリングするページが必要です。何もしなくても、それでいいのです。実際に起こっていることは、コントローラーが再び「アクション」アクションに入り、レンダリング エラーをスローすることです。jquery エラーを続行すると、部分的なビュー データだけがウィンドウ全体にレンダリングされます。
レンダリング/コントローラー呼び出しで私の問題がどこにあるのか、誰でも指摘できますか?
それが十分な情報であることを願っています。コードを削除する必要がありましたが、必要に応じてさらに提供できます。
ご意見ありがとうございます。
EDTI -
私が得ているエラーは、ソート可能なリストをレンダリングするための最初の関数の部分ビューにあります-
Microsoft JScript ランタイム エラー: オブジェクトが必要です
それが役立つことを願っています