Asp.net mvc ASP-MVC:如何使用自定义html帮助程序从控制器获取对象属性并将其传递到视图中?
我正在努力找出如何从控制器获取对象属性,比如说,我想获取视图中显示的对象的ID,以便在我制作的自定义HTML帮助程序中使用。然后,如何使用此ID作为视图中隐藏html标记的值 以下是html帮助程序:Asp.net mvc ASP-MVC:如何使用自定义html帮助程序从控制器获取对象属性并将其传递到视图中?,asp.net-mvc,Asp.net Mvc,我正在努力找出如何从控制器获取对象属性,比如说,我想获取视图中显示的对象的ID,以便在我制作的自定义HTML帮助程序中使用。然后,如何使用此ID作为视图中隐藏html标记的值 以下是html帮助程序: public static IHtmlString AddLink<TModel>(this HtmlHelper<TModel> htmlHelper, string linkText, string containerElement, string counterEle
public static IHtmlString AddLink<TModel>(this HtmlHelper<TModel> htmlHelper, string linkText, string containerElement, string counterElement, string collectionProperty, Type nestedType)
{
var ticks = DateTime.UtcNow.Ticks;
var nestedObject = Activator.CreateInstance(nestedType);
var partial = htmlHelper.EditorFor(x => nestedObject).ToHtmlString().JsEncode();
partial = partial.Replace("id=\\\"nestedObject", "id=\\\"" + collectionProperty + "_" + ticks + "_");
partial = partial.Replace("name=\\\"nestedObject", "name=\\\"" + collectionProperty + "[" + ticks + "]");
var js = string.Format("javascript:addNestedForm('{0}','{1}','{2}','{3}');return false;", containerElement, counterElement, ticks, partial);
TagBuilder tb = new TagBuilder("a");
tb.Attributes.Add("href", "#");
tb.Attributes.Add("onclick", js);
tb.InnerHtml = linkText;
var tag = tb.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(tag);
}
对于视图,我使用html助手函数的地方如下:
<p>
@Html.AddLink("Add More Part", "#parts", ".part", "Parts", typeof(percobaan2.Models.Part))
</p>
提前感谢。在助手扩展方法中添加一个额外的参数字符串objectId,并将模型id传递给该方法怎么样
public static IHtmlString AddLink<TModel>(this HtmlHelper<TModel> htmlHelper
, string linkText, string containerElement, string counterElement,
string collectionProperty, Type nestedType,
string objectId)
{
}
哇,让我试试吧,等一下,我还在修复一些代码,所以我不能马上测试,但我有一个问题。我们可能已经传递了参数。隐马尔可夫模型。。我们需要将参数指定给我们想要的html标记的值吗,还是就这样?它会自动将字符串objectId检测为html标记?nooo的值。你必须编写你想要的代码。我们只为此付费:@acesupriatana,您需要像tb.Attributes.Addid、objectId这样编码;哦,我明白了:D对不起,我正在学习这个html帮助程序,所以我在这里做婴儿步。顺便说一句,这不是应该像tb.Attributes.Addvalue,objectId?因为我想分配给html标记值?对不起,如果我错了:S
public static IHtmlString AddLink<TModel>(this HtmlHelper<TModel> htmlHelper
, string linkText, string containerElement, string counterElement,
string collectionProperty, Type nestedType,
string objectId)
{
}
@Html.AddLink("Add More Part", "#parts", ".part", "Parts",
typeof(percobaan2.Models.Part),
Convert.ToString(percobaan2.Models.Part.Id))