MVC - 通过控制器内容(函数)参数发送 HtmlHelper 对象?
MVC - Send HtmlHelper object by controller Content (function) argument?
有没有办法 return 从控制器查看 HtmlHelper 对象?
在代码中:
控制器:
public ActionResult SomeFunc(int id)
{
if (condition)
return Content();//here i would like to send Html.ActionLink("Text", "Action")
else
return Content();
}
link 将在 javascript 中获得句柄:
$.get("", { id: $("#id").val() }).
done(function (data) {
if (data != 0) {
$("#someDOMID").val(data);
}
});
如果您希望内容包含原始 html 字符串,那么您可以创建一个函数来呈现部分字符串服务器端和 return。
然后您可以更进一步,创建一个通用 ActionLinkPartial
,其中包含一个嵌入式 @Html.ActionLink
并接受具有您的操作 link 配置设置的模型。
类似...
protected string RenderPartialViewToString(string viewName, object model)
{
if (string.IsNullOrEmpty(viewName))
viewName = ControllerContext.RouteData.GetRequiredString("action");
ViewData.Model = model;
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
并使用像...
这样的模型
public class ActionLinkModel
{
public string Text{get;set}
public string Action{get;set;}
}
调用它...
var html = this.RenderPartialViewToString("Partials/Html/ActionLinkPartial", model);
如果您只需要发送问题中提到的 link 那么试试这个:
public ActionResult GetLink()
{
string url = Url.Action("Index", "Home", new { id = 1 });
return Content(url);
}
否则,最好使用局部视图方法。
有没有办法 return 从控制器查看 HtmlHelper 对象?
在代码中:
控制器:
public ActionResult SomeFunc(int id)
{
if (condition)
return Content();//here i would like to send Html.ActionLink("Text", "Action")
else
return Content();
}
link 将在 javascript 中获得句柄:
$.get("", { id: $("#id").val() }).
done(function (data) {
if (data != 0) {
$("#someDOMID").val(data);
}
});
如果您希望内容包含原始 html 字符串,那么您可以创建一个函数来呈现部分字符串服务器端和 return。
然后您可以更进一步,创建一个通用 ActionLinkPartial
,其中包含一个嵌入式 @Html.ActionLink
并接受具有您的操作 link 配置设置的模型。
类似...
protected string RenderPartialViewToString(string viewName, object model)
{
if (string.IsNullOrEmpty(viewName))
viewName = ControllerContext.RouteData.GetRequiredString("action");
ViewData.Model = model;
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
并使用像...
这样的模型public class ActionLinkModel
{
public string Text{get;set}
public string Action{get;set;}
}
调用它...
var html = this.RenderPartialViewToString("Partials/Html/ActionLinkPartial", model);
如果您只需要发送问题中提到的 link 那么试试这个:
public ActionResult GetLink()
{
string url = Url.Action("Index", "Home", new { id = 1 });
return Content(url);
}
否则,最好使用局部视图方法。