Asp.net 添加一个';目标';属性设置为Telerik MVC extensions中tabstrip项的URL

Asp.net 添加一个';目标';属性设置为Telerik MVC extensions中tabstrip项的URL,asp.net,asp.net-mvc,telerik,telerik-mvc,Asp.net,Asp.net Mvc,Telerik,Telerik Mvc,我正在用下面的Telerik Extensions tabstrip替换这个“手动滚动”的tabstrip,但是我不知道如何让tabstrip在每个项目的URL中包含target属性。我怎样才能做到这一点 之前: <ol> @foreach (var sheet in Model.Sheets) { <li> <a href="@(Url.Content(Server.MapUrl(sheet.FilePath

我正在用下面的Telerik Extensions tabstrip替换这个“手动滚动”的tabstrip,但是我不知道如何让tabstrip在每个项目的URL中包含
target
属性。我怎样才能做到这一点

之前:

<ol>
    @foreach (var sheet in Model.Sheets)
    {
        <li>
            <a href="@(Url.Content(Server.MapUrl(sheet.FilePath)) + "?guid=" + Guid.NewGuid())" target="selected-worksheet">@sheet.Name</a></li>
    }
</ol>
您可以使用该属性设置其他html属性:

item.LinkHtmlAttributes = new Dictionary<string, object>
{
    { "target", "selected-worksheet" }
};
您可以使用该属性设置其他html属性:

item.LinkHtmlAttributes = new Dictionary<string, object>
{
    { "target", "selected-worksheet" }
};

我想我在Telerik TreeView中遇到了类似的问题,并通过jQuery绕道解决了这个问题

我的问题是,将任何(链接)HtmlAttributes传递到视图中的TreeViewItems是不起作用的。我试图向控制器中的TreeView项添加几个HtmlAttributes:(例如,我想向元素添加一个属性):

,但在作为Ajax请求的JsonResult返回后,视图中除了.Text、.Value、.Enabled、.LoadOnDemand、.Url之外的所有内容都为空

我找到了一个合理的答案,即这些元素没有在Telerik论坛上序列化:

然后我解决了这个问题,添加了一个特殊的

<span class="treeViewItemAddAjaxLocation"></span>
正在运行的控制器代码段“\u AjaxLoading”:

IList newNodes=new List();
foreach(修订中的修订实体修订)
{
添加(新的TreeViewItem()
{
Text=“Node Name”+”“,//Name+定位器元素
Value=revision.ID.ToString()+“RevisionEntity”,
编码=假,
启用=真,
LoadOnDemand=false,
Url(“/Menu/NavigateToRevisionDetails”),//创建一个元素
});
}
返回新的JsonResult{Data=newNodes};
视图:


函数树视图加载(e){
var treeView=$(this.data(“tTreeView”);
$(“.treeViewItemAddAjaxLocation”,treeView.element)
.每个(功能){
var$this=$(this);//将其放入jQuery constr
item=$this.closest(“.t-link”);//取a
item.attr('data-ajax-update','#main');
item.attr('data-ajax-mode','replace');
attr('data-ajax-method','GET');
item.attr('data-ajax','true');
$this.remove();//删除span元素
});        
}
结果树视图元素:

<div class="t-bot">
    <a class="t-link t-in" href="/Menu/NavigateToRevisionDetails" data-ajax-update="#main" data-ajax-mode="replace" data-ajax-method="GET" data-ajax="true">Node Name</a>
    <input class="t-input" type="hidden" value="774336a5-c6eb-42cc-905a-4d215c957fa2;RevisionEntity" name="itemValue">
</div>


通过#主html元素中的Ajax加载通过“NavigateToRevisionDetails”操作调用的PartialView,页面的其余部分不会刷新

我想我在Telerik TreeView上也遇到了类似的问题,并通过jQuery绕道解决了这个问题

我的问题是,将任何(链接)HtmlAttributes传递到视图中的TreeViewItems是不起作用的。我试图向控制器中的TreeView项添加几个HtmlAttributes:(例如,我想向
元素添加一个属性):

,但在作为Ajax请求的JsonResult返回后,视图中除了.Text、.Value、.Enabled、.LoadOnDemand、.Url之外的所有内容都为空

我找到了一个合理的答案,即这些元素没有在Telerik论坛上序列化:

然后我解决了这个问题,添加了一个特殊的

<span class="treeViewItemAddAjaxLocation"></span>
正在运行的控制器代码段“\u AjaxLoading”:

IList newNodes=new List();
foreach(修订中的修订实体修订)
{
添加(新的TreeViewItem()
{
Text=“Node Name”+”“,//Name+定位器元素
Value=revision.ID.ToString()+“RevisionEntity”,
编码=假,
启用=真,
LoadOnDemand=false,
Url(“/Menu/NavigateToRevisionDetails”),//创建一个元素
});
}
返回新的JsonResult{Data=newNodes};
视图:


函数树视图加载(e){
var treeView=$(this.data(“tTreeView”);
$(“.treeViewItemAddAjaxLocation”,treeView.element)
.每个(功能){
var$this=$(this);//将其放入jQuery constr
item=$this.closest(“.t-link”);//取a
item.attr('data-ajax-update','#main');
item.attr('data-ajax-mode','replace');
attr('data-ajax-method','GET');
item.attr('data-ajax','true');
$this.remove();//删除span元素
});        
}
结果树视图元素:

<div class="t-bot">
    <a class="t-link t-in" href="/Menu/NavigateToRevisionDetails" data-ajax-update="#main" data-ajax-mode="replace" data-ajax-method="GET" data-ajax="true">Node Name</a>
    <input class="t-input" type="hidden" value="774336a5-c6eb-42cc-905a-4d215c957fa2;RevisionEntity" name="itemValue">
</div>


通过#主html元素中的Ajax加载通过“NavigateToRevisionDetails”操作调用的PartialView,页面的其余部分不会刷新

LinkHtmlAttributes
是只读属性。有一个
模板
属性,但没有为TabStripItem记录它。@ProfK,的确,它有一个私有setter,那么第二个代码段应该可以工作。Eish,抱歉,我忽略了这一点。我最后用jQuery作弊了,呵呵。
LinkHtmlAttributes
是只读属性。有一个
模板
属性,但没有为TabStripItem记录它。@ProfK,的确,它有一个私有setter,那么第二个代码段应该可以工作。Eish,抱歉,我忽略了这一点。我最后用jQuery作弊了,呵呵。
IList<TreeViewItem> newNodes = new List<TreeViewItem>();
foreach (RevisionEntity revision in revisions)
{
    newNodes.Add(new TreeViewItem() 
    {
        Text = "Node Name" + "<span class='treeViewItemAddAjaxLocation'></span>", // name + locator element             
        Value = revision.ID.ToString() + ";RevisionEntity",
        Encoded = false,
        Enabled = true,
        LoadOnDemand = false,
        Url("/Menu/NavigateToRevisionDetails"), // creates an < a > element 
    });
}
return new JsonResult { Data = newNodes };
<div class="t-bot">
    <a class="t-link t-in" href="/Menu/NavigateToRevisionDetails" data-ajax-update="#main" data-ajax-mode="replace" data-ajax-method="GET" data-ajax="true">Node Name
        <span class="treeViewItemAddAjaxLocation"></span>
    </a>
    <input class="t-input" type="hidden" value="774336a5-c6eb-42cc-905a-4d215c957fa2;RevisionEntity" name="itemValue">
</div>

function TreeView_onLoad(e) {
    var treeView = $(this).data("tTreeView");

    $(".treeViewItemAddAjaxLocation", treeView.element)
        .each(function () {
            var $this = $(this); // put it in jQuery constr
            item = $this.closest(".t-link"); // take the a
            item.attr('data-ajax-update', '#main');
            item.attr('data-ajax-mode', 'replace');
            item.attr('data-ajax-method', 'GET');
            item.attr('data-ajax', 'true');
            $this.remove(); // removes the span element
    });        
}
<div class="t-bot">
    <a class="t-link t-in" href="/Menu/NavigateToRevisionDetails" data-ajax-update="#main" data-ajax-mode="replace" data-ajax-method="GET" data-ajax="true">Node Name</a>
    <input class="t-input" type="hidden" value="774336a5-c6eb-42cc-905a-4d215c957fa2;RevisionEntity" name="itemValue">
</div>