问题描述
我有一个控制器,将与Sitefinity中的三个不同页面共享。 API将为三个页面中的每个页面采用不同的参数。是否可以设置参数并可以在Controller中使用的页面设置值?
解决方法
您可以将公共属性添加到控制器,这些属性将显示在小部件的设计器中-当您在后端“编辑”小部件时,可以为这些属性设置不同的值。
因此,这3个页面中的每个页面都可以在其中设置唯一值。
示例:
[ControllerToolboxItem(Name = "TemporaryRedirectController",Title = "Temporary Redirect",SectionName = "Custom Widgets",CssClass = "sfMvcIcn")]
public class TemporaryRedirectController : Controller
{
public string RedirectUrl { get; set; }
public ActionResult Index()
{
if (SystemManager.IsDesignMode)
{
return Content($"This widget will 302 redirect to {RedirectUrl}");
}
if (!this.RedirectUrl.IsNullOrEmpty())
{
return Redirect(this.RedirectUrl);
}
return new EmptyResult();
}
}
在上面的示例中,您可以将此小部件拖动到3个不同的页面,并且在对其进行编辑时,将能够为RedirectUrl字段设置一个不同的值。