我在我的视图上使用多个部分视图.在左侧我有一些链接按钮.
在中间我有2个局部视图让我们假设Up和Down我能够更新Up partialview现在我想更新Down部分视图点击同一个链接按钮
我只能在Ajax.ActionLink按钮中发送一个UpdateTargetID,但我想更新2 Partialview一个同一个按钮的clcik.
1)有没有办法可以在Ajax.ActionLink中传递多个UpdateTargetID或2)我可以在Home Controller中返回多个局部视图或者你建议的任何其他方式请回复我
谢谢大家回复让我告诉你我做了什么,以便在单击时刷新多个局部视图这是我用来点击的动作链接在这里我使用此Action链接的OnSucess函数来更新,此Action链接是部分视图
<%= Ajax.ActionLink("Select", "Employee", new { Id = Employee.EmployeeID }, new AjaxOptions { UpdateTargetId = "EmployeeDiv", HttpMethod = "Post", OnSuccess = "function(){EmployeeHistory(-2," + Employee.EmployeeID.ToString() + ");}" })%>
Run Code Online (Sandbox Code Playgroud)
这是我从局部视图调用的javascript
function EmployeeHistory(EmployeeID) {
var url = '<%= Url.Action("PartialviewAction", "ControllerName") %>'
$('#PartialviewDiv1').load(url, { Id: EmployeeID });
var url1 = '<%= Url.Action("PartialviewAction", "ControllerName") %>'
$('#PartialviewDiv2').load(url1, { Id: EmployeeID });
}
Run Code Online (Sandbox Code Playgroud)
这两个div在索引视图中,我想更新
<div id="Paritalview div1"><% Html.RenderPartial("PartialViewname1"); %></div>
<div id="Paritalview div2"><% Html.RenderPartial("PartialViewname2"); %></div>
Run Code Online (Sandbox Code Playgroud) 我有一个小的javascript函数,它在新标签中打开一个网址:
function RedirectToPage(status) {
var url = 'ObjectEditor.aspx?Status=' + status;
window.open(url , '_blank');
}
Run Code Online (Sandbox Code Playgroud)
当通过单击按钮调用客户端时,即使在chrome中也是如此.但是在Chrome中,通过使用从服务器端(!)调用它时将无法工作
ScriptManager.RegisterClientScriptBlock()
Run Code Online (Sandbox Code Playgroud)
在Firefox和IE中,它会在新选项卡中打开网址,但Chrome会在新窗口中打开网址.什么可以解决方法迫使Chrome在新标签中打开它?
我有以下索引视图:
@model BoringStore.ViewModels.ProductIndexViewModel
@{
ViewBag.Title = "Index";
}
<h2>Produkte</h2>
<div id='addProduct'>
@{ Html.RenderPartial("Create", new BoringStore.Models.Product()); }
</div>
<div id='productList'>
@{ Html.RenderPartial("ProductListControl", Model.Products); }
</div>
Run Code Online (Sandbox Code Playgroud)
"productList"只是所有产品的列表.
addProduct呈现我的创建视图:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<div id="dialog-confirm" title="Produkt hinzufügen" style="display:none">
@using (Ajax.BeginForm("Index_AddItem", new AjaxOptions { UpdateTargetId = "productList" }))
{
@Html.Raw(DateTime.Now.ToString());
<div>
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
</div>
<br />
<div>
@Html.LabelFor(model => model.Price)
@Html.EditorFor(model => model.Price)
</div>
<br /><br />
<div>
<input type="submit" value="Produkt hinzufügen" />
</div>
}
Run Code Online (Sandbox Code Playgroud)
提交表单时,将调用控制器中的Index_AddItem方法.不幸的是,表单总是调用该方法两次.:(
有人可以帮我吗?
asp.net-ajax partial-views razor asp.net-mvc-3 double-submit-problem
由于运行时限制,我使用的是旧版本的ASP.NET AJAX,在更新面板中放置ASP.NET验证程序不起作用.是否有一个技巧可以使这些工作,或者我需要使用AJAX工具包附带的ValidatorCallOut控件?
所以我做了一些相关问题的阅读,并有一些有趣的东西,但没有找到我的答案,至少没有理解答案.
我对AJAX,javascript和sclient side scripting一般都是新手.
我一直在使用C#asp.net,并且最近添加了一些更新面板以平滑用户控件和更新位,以便每次都不重新加载页面.一切都很出色,我很高兴,直到我决定尝试使用一些JQuery.
我从ui.jquery.js中选择了一个很好的日期选择器,它在普通页面上运行得很好.当我在updatepanel中进行回发时,我的问题就出现了.日期选择器停止工作.
根据我的阅读,我需要在回发后手动连接这个.
1)我真的不明白为什么.在我的母版页上我有:
<script type="text/javascript">
$(function() {
$(".mydatepickerclass").datepicker({dateFormat: 'dd-mm-yy'});
});
</script>
Run Code Online (Sandbox Code Playgroud)
它使用分配的mydatepickerclass获取我的输入框.和所有的作品.为什么这会停止回发.
2)我如何解决这个问题....如何连接它以便在updatepanel中回发后它仍然有效.
我知道ID可能会在回发中发生变化,我认为但是当我使用课程时,我不知道出了什么问题.
编辑
我的usercontrol中有以下代码,其中发生了更新:
<asp:UpdatePanel ID="HistoryUpdatePanel" runat="server">
<ContentTemplate>
<%-- Start of Company History section --%>
<fieldset>
<legend>Activity History</legend>
<script type="text/javascript">
$(function() {
$(".mydatepickerclass").datepicker({dateFormat: 'dd-mm-yy'});
});
</script>
<div>
<asp:ListBox ID="listBoxHistoryTypes" runat="server" SelectionMode="Multiple" AutoPostBack="true" OnSelectedIndexChanged="listBoxHistoryTypes_IndexChanged" />
<label>Date From:</label><asp:TextBox class="mydatepickerclass" ID="txtdatefrom" runat="server" />
<label>Date To:</label><input class="mydatepickerclass" type="text" />
<asp:TextBox class="mydatepickerclass" ID="txtdateto" runat="server" />
<asp:Button ID="btnFilterSearch" runat="server" Text="Filter Results" OnClick="btnFilterSearch_Click" />
</div>
</fieldset>
</ContentTemplate>
Run Code Online (Sandbox Code Playgroud)
updatepanel内的脚本不会重新连接吗?
谢谢
乔恩霍金斯
我刚刚注意到,在我从UpdatePanel主页面内部执行asyncpostback后,我的页面标题将重置为标准的"Untitled Page" .从母版页内部回发期间(例如,当我单击母版页内的搜索框按钮时),标题不会丢失.
我假设通过使用不同的contentplaceholder专门设置文档标题我将避免这样的问题,但显然我错了.除了必须在ASPX页面的代码隐藏中明确设置标题之外还有其他我想念的东西(我希望避免使用下面设置的方式)吗?
这是我的页面的基本要点,即调用母版页(下面的母版页代码)
<asp:Content ID="Content1" ContentPlaceHolderID="title" Runat="Server">
Page Title
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" Runat="Server">
<script type="text/javascript">
//random javascript validators
</script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server">
<div class="title">
Account Management
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
//Username + Password Set Form
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
这是母版页.ASP.NET AJAX ScriptManager首先放在<form>正文中的标记之后.
<head id="Head1" runat="server">
<title>
<asp:ContentPlaceHolder id="title" runat="server">
</asp:ContentPlaceHolder>
</title>
//Stylesheet references
<script type="text/javascript">
//Random javascript functions
</script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
Run Code Online (Sandbox Code Playgroud) 有没有办法让一个UpdateProgress控件与多个UpdatePanel控件相关联?这样的事情:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
.....
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
.....
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress3" runat="server" AssociatedUpdatePanelID="UpdatePanel1, UpdatePanel2">.....
Run Code Online (Sandbox Code Playgroud) 我们有一个运行一个网站.NET Framework 2.0有Ajax version 10618.
但因为它是,这是一个旧版本的DLL,所以我们计划在它切换到它的"最新"版本为.NET Framework 2.0的AjaxControlToolkit version 20229.
在我们的测试中,我们检测到ASP控件存在问题,该控件RegularExpressionValidator过去在旧版本中运行良好.
每当目标控件的输入与验证不匹配时,控件就会显示我的文本,在这种情况下是一个红色的星号,就像在下一行中一样,它在控件中显示以下内容:"-1.7976931348623157e+308".
那里有什么不对的表达式,因为正如我所说,它正常工作与旧版本的Ajax,而且我找不到相关的任何事情RegularExpressionValidators和Ajax版本.
PS:验证器和控件都在UpdatePanel内.
PS 2:对于旧版本,它会在控件中放置0,然后在表达式不匹配时向我显示旁边的红色星号.
编辑:
这是控件,完全复制:
<asp:RegularExpressionValidator ID="ValidateFooOrder"
runat="server" ControlToValidate="txtFooNum"
Text="*" ErrorMessage="Invalid Foo number"
ValidationExpression="^\d{0,4}$" ValidationGroup="GenerateFooFile" />
Run Code Online (Sandbox Code Playgroud)
它还有一个NumericUpAndDownExtender附加:
<ajaxToolkit:NumericUpDownExtender ID="NumericExtenderFooNum"
runat="server" TargetControlID="txtFooNum"
TargetButtonDownID="FooBack" TargetButtonUpID="FooForward" />
Run Code Online (Sandbox Code Playgroud) 在为我的应用程序采用Knockout JavaScript库之前,我应该考虑哪些因素?
目前我有一个ASP.NET MVC 2站点.大多数网站的导航和设置都是简单的获取和发布操作.有些视图具有网格/多个网格,其中数据仅供查看.所有的ajax和javascript都是使用JQuery处理的.从控制器返回的JSON很少并且使用稀疏.大多数ajax网格是通过使用部分视图发送HTML来实现的.
我知道有图书馆支持unobtrusive AJAX所以我问我的父亲(也.net程序员)他为什么不使用它,他的答案对我来说非常惊讶:
"
unobtrusive AJAX(在你的情况下jquery.unobtrusive-ajax)不建议使用,所以我不使用它.我更喜欢AJAX使用手动写 请求JQuery."
我搜索了互联网,但我找不到那些unobtrusive AJAX不建议使用的地方.
那么使用jquery.unobtrusive-ajax和有什么问题MVC AJAX helpers吗?如果是这样,你能说出问题是什么并且可以解决吗?
asp.net-ajax ×10
asp.net ×3
asp.net-mvc ×2
javascript ×2
updatepanel ×2
c# ×1
jquery ×1
knockout.js ×1
master-pages ×1
razor ×1
vb.net ×1
webforms ×1