MVC4(razor)-控制器返回部分视图,但整个页面正在更新
我是MVC4和Razor引擎的新手,所以这可能是个愚蠢的问题 我试图实现的是我有一个带有下拉列表和按钮的页面。单击该按钮调用传递所选值的控制器。控制器应该返回部分视图,并且只更新页面的底部 但是,我发现整个页面被替换为仅部分查看html。我得到了显示的结果列表,但我丢失了项目下拉列表和提交按钮。我试着引用jquery和不引人注目的脚本(我认为在MVC4中我不需要这样做),但这根本不会改变页面(例如,下拉列表和按钮保持在那里,不会显示结果) 我的部分看法是:MVC4(razor)-控制器返回部分视图,但整个页面正在更新,razor,asp.net-mvc-4,Razor,Asp.net Mvc 4,我是MVC4和Razor引擎的新手,所以这可能是个愚蠢的问题 我试图实现的是我有一个带有下拉列表和按钮的页面。单击该按钮调用传递所选值的控制器。控制器应该返回部分视图,并且只更新页面的底部 但是,我发现整个页面被替换为仅部分查看html。我得到了显示的结果列表,但我丢失了项目下拉列表和提交按钮。我试着引用jquery和不引人注目的脚本(我认为在MVC4中我不需要这样做),但这根本不会改变页面(例如,下拉列表和按钮保持在那里,不会显示结果) 我的部分看法是: @using (Ajax.BeginF
@using (Ajax.BeginForm("GetProjectStories", "MyController", new AjaxOptions{ UpdateTargetId = "projectUserStories"}))
{
<fieldset>
<legend>Select Project</legend>
<div>
@Html.DropDownList("ProjectReference", (IEnumerable<SelectListItem>)Model.ProjectList)
</div>
<p>
<input name="GetStoriesButton" type="submit" value="Get Stories" />
</p>
</fieldset>
}
@if (Model != null && Model.UserStories != null)
{
<div id="projectUserStories">
@{Html.RenderPartial("_UserStoryList", Model);}
</div>
}
“我的部分视图”内容仅包含一个html表和对模型的引用。您计划如何更新
projectUserStories
,如果无法呈现代码块,请尝试以下操作:
<div id="projectUserStories">
@if (Model != null && Model.UserStories != null)
{
Html.RenderPartial("_UserStoryList", Model);
}
</div>
@if(Model!=null&&Model.UserStories!=null)
{
RenderPartial(“\u UserStoryList”,Model);
}
还要检查Microsoft Ajax帮助程序所需的所有js文件,例如:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
另请看:
因此,我尝试包含那个不引人注目的脚本,并修复了这样一个事实:如果该对象为null,我没有呈现该div,但它仍然不工作 所以我转而使用jquery
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$('form').submit(function () {
var url = "@Url.Action("GetProjectStories", "MyController")";
var data = { selectedProject: $('#ProjectReference').val() };
$("#projectUserStories").load(url, data, function() {
});
return false;
});
});
</script>
@using (Html.BeginForm())
{
<fieldset>
<legend>Select Project</legend>
<div>
@Html.DropDownList("ProjectReference", (IEnumerable<SelectListItem>) Model.ProjectList)
</div>
<p>
<input name="GetStoriesButton" type="submit" value="Get Stories" />
</p>
</fieldset>
<div id="projectUserStories">
@{ Html.RenderPartial("_UserStoryList", Model); }
</div>
}
$(函数(){
$('form')。提交(函数(){
var url=“@url.Action”(“GetProjectStories”、“MyController”);
var data={selectedProject:$('#ProjectReference').val();
$(“#projectUserStories”).load(url、数据、函数(){
});
返回false;
});
});
@使用(Html.BeginForm())
{
选择项目
@DropDownList(“ProjectReference”,(IEnumerable)Model.ProjectList)
@{Html.RenderPartial(“_UserStoryList”,Model);}
}
是的,我今天早上注意到了-谢谢。将查看您的链接:)
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$('form').submit(function () {
var url = "@Url.Action("GetProjectStories", "MyController")";
var data = { selectedProject: $('#ProjectReference').val() };
$("#projectUserStories").load(url, data, function() {
});
return false;
});
});
</script>
@using (Html.BeginForm())
{
<fieldset>
<legend>Select Project</legend>
<div>
@Html.DropDownList("ProjectReference", (IEnumerable<SelectListItem>) Model.ProjectList)
</div>
<p>
<input name="GetStoriesButton" type="submit" value="Get Stories" />
</p>
</fieldset>
<div id="projectUserStories">
@{ Html.RenderPartial("_UserStoryList", Model); }
</div>
}