Sitefinity 14.1 Widget为何解析URL路径?路由匹配逻辑疑问
Sitefinity Widget路由行为疑问
我创建的Widget代码
控制器代码
[ControllerToolboxItem(Name = "MyFirstWidget", Title = "My First Widget", SectionName = "Custom")] public class MyFirstWidgetController : Controller, IPersonalizable { public ActionResult Index() { var model = new MyFirstWidgetModel(); model.Message = this.Message; return View("Index", model); } public ActionResult Test() { return View("Test", model); } public string Message { get; set; } }
视图文件
Index.cshtml
@model Learn_SF.Mvc.Models.MyFirstWidgetModel <div> @Model.Message </div>
Test.cshtml
<div> This is test </div>
配置与测试情况
将该Widget添加至两个页面——Home和Test(Test页面隶属于Home),并分别设置Message值为“Content from home page”和“Content for test page”。
测试URL及显示内容如下:
| URL | Content Displayed |
|---|---|
| 1. /home | Content for home page. /符合预期/ |
| 2. /home/test | 404错误。/创建Test页面之前的结果,符合预期/ |
| 3. /home/test | Content for test page. /创建Test页面之后的结果,符合预期/ |
| 4. /home/test/test | This is test. |
疑问
对于第4种情况,URL的最后一个片段似乎被识别为控制器方法,但同样的逻辑并未应用在第2种情况中。为何Widget会根据URL查找后端方法?我原本预期每个Widget默认仅调用Index方法。若这是默认行为,当页面与控制器方法同名时,系统如何区分是查找页面还是控制器方法?使用版本为Sitefinity 14.1。
内容的提问来源于stack exchange,提问作者sukesh
相关产品推荐
相关产品推荐

