我正在从事一个项目(这是这个主题的新事物(,用户可以在其中添加一个公司的多个地址。现在,我想在我的身边添加部分视图(通过单击操作链接(有可能输入这些地址的多个电话号码。
在单击操作链接的地址(将固有的DIV元素放置在此处(之后,应直接放置空子部分(对于电话和..(
例如,我有两个用于公司xyz的插件,我渲染了两个Action链接,每个链接都列出了DIV元素。
如何告诉我的Ajax Action链接以仅更新for循环中的corespessing Div?我的意思是,如果单击第一个链接,则部分视图应在第一个div元素位置等。我有一个可将其添加到div。
的ID中的地址ID由控制器正确返回部分(与Fiddler检查(,但不会在页面上重新归还。如果我在ActionLink的" updateTargetId"中删除对" advellyId"的引用,并且在占位符div中 - 一切都很好。
如果我检查Webside源代码,我在TargetID和Div ID中具有相同的"名称"(comrow 1( - 请参阅:
... data-ajax =" true" data-ajax-mode ="之后" data-ajax-update ="#comrow 1" href ="/companyDetails/getCommunicationEditor/1">添加新手机./email此地址...
和:
</div>
<div id="ComRow+1">
</div>
我找到了这个:
ajax.actionlink中的动态更新目标ID
但在我的情况下它不起作用(也许我是为了循环吗?(
和这个:如何在action linkText
中添加INT的模型主键但是" .toString(("确实解决了问题
我在做什么错?许多人提前感谢
这是生成循环的代码:
<div>
@for (int i = 0; i < Model.EditorAddresses.Count(); i++)
{
@Html.EditorFor(m => m.EditorAddresses[i])
//Start - render link to add template for the new address
<div>
@Ajax.ActionLink("Add a new Phone no./Email for this Address...",
"GetCommunicationEditor", new { @id = Model.EditorAddresses.ElementAt(i).AddressId },
new AjaxOptions
{
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "ComRow+" + Model.EditorAddresses.ElementAt(i).AddressId.ToString(),
});
</div>
//End - render link to add template for the new address
<div id="ComRow+@Model.EditorAddresses.FirstOrDefault().AddressId.ToString()">
</div>
//<div id="ComRow+<%=Model.EditorAddresses.ElementAt(i).AddressId%>"></div>
...
}
我自己解决了问题!我删除了字符串元素" comrow"。
我修改了Ajax ActionLink:
updateTargetId = model.editorAddresses.elementat(i(.addressid.tostring((,
结果是:data-ajax-update ="#1"(在网站的"查看源代码"中(
我还将" Div ID"的代码更改为:
id ="@model.editorAddresses.elementat(i(.addressid.tostring(("
结果:
id =" 1"如果我查看网站源代码
P.S。DIV元素的已发布代码也存在一个错误" ... firstordEfault((.."是错误的。正确的方法是使用" ... elementat(i(.."。
我认为问题是,DIV ID不接受" "
也许这有助于某人