C# 替换整个页面
我在网上读过很多类似的问题,但仍然无法解决问题。MyC# 替换整个页面,c#,ajax,asp.net-mvc,razor,C#,Ajax,Asp.net Mvc,Razor,我在网上读过很多类似的问题,但仍然无法解决问题。MyAjax.BeginForm通过Controller中的PartialView返回一条消息,但字符串将替换整个页面 查看: @using (Ajax.BeginForm("NoMoreItem", "ProductListing", new AjaxOptions { HttpMethod = "get", InsertionMode = InsertionMode.Replace, UpdateTargetId = string.Co
Ajax.BeginForm
通过Controller
中的PartialView
返回一条消息,但字符串将替换整个页面
查看
:
@using (Ajax.BeginForm("NoMoreItem", "ProductListing",
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = string.Concat("NoMoreItemSection1-", counter)
}, new { @id = string.Concat("NoMoreItemForm1-", counter) }))
{
<input type="hidden" value="@Model.Email" name="email" />
<input type="hidden" value="@i.code" name="code" />
<input type="submit" value="notify me" />
}
</div>
public ActionResult NoMoreItem(string email, string productCode)
{
string message;
_waitinglist.Save(email, productCode);
message = "Item added to Waiting List";
return PartialView("ItemAdded", message);
}
@model string
<div>
@Model
</div>
itemsadded
查看:
@using (Ajax.BeginForm("NoMoreItem", "ProductListing",
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = string.Concat("NoMoreItemSection1-", counter)
}, new { @id = string.Concat("NoMoreItemForm1-", counter) }))
{
<input type="hidden" value="@Model.Email" name="email" />
<input type="hidden" value="@i.code" name="code" />
<input type="submit" value="notify me" />
}
</div>
public ActionResult NoMoreItem(string email, string productCode)
{
string message;
_waitinglist.Save(email, productCode);
message = "Item added to Waiting List";
return PartialView("ItemAdded", message);
}
@model string
<div>
@Model
</div>
@模型字符串
@模型
我在\u Layout.cshtml
中引用了jquery.unobtrusive ajax.js
文件,所以这似乎不是原因
有人知道为什么该消息会替换整个页面吗?请确保引用MS文件
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
我也认为你是想发帖而不是得到 仔细检查页面中是否正确加载了jquery.unobtrusive-ajax.js,并在输入标记中检查产品代码的名称(应等于action参数)
让我知道这是否解决了您的问题。对于那些在谷歌上走来走去却找不到解决方案的人
确保web.config在appsettings
bundles.Add(新脚本包(“~/bundles/js”)。包括(“~/Scripts/jquery.unobtrusive ajax.js”)代码>不,它不工作。奇怪的是,当我在页面完全加载之前点击按钮时,它就工作了。但在页面完全加载后停止工作。太奇怪了。这些脚本已经过时了,但你仍然必须包含它们。不,它不起作用。奇怪的是,当我在页面完全加载之前点击按钮时,它就工作了。但在页面完全加载后停止工作。太奇怪了。当这种情况发生时,大多数时候都是因为脚本加载不当。单击按钮之前,查看呈现的HTML是什么样子?@Jasen一个带有项目名称和按钮的表。我在布局中包括了js文件,但我没有在ItemAdded视图中使用布局。也许这就是原因?如果是这样,我应该在部分视图还是父视图中引用js文件?ItemAdded是一个部分视图,应该使用布局加载到另一个视图中——这很好。检查调试控制台上是否没有错误。检查呈现的html,确认您有jquery.js,然后检查jquery.unobtrusive-ajax.js。确保您的ID在页面上是唯一的。主视图上的目标idNoMoreItemSection1计数器在哪里?