我想有呈现一个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 -
我得到的错误是在渲染的排序列表的第一个函数的局部视图 -
微软JScript运行时错误:预期的对象
希望帮助