Asp.net 指定视图模型时找不到视图
我对局部视图和关联视图模型有一个特殊的问题。 控制器中的相关功能如下所示:Asp.net 指定视图模型时找不到视图,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我对局部视图和关联视图模型有一个特殊的问题。 控制器中的相关功能如下所示: using MyProject.ViewModels; [ChildActionOnly] public PartialViewResult ShowMyView(int id) { return PartialView(new MyModel() { ModelID = id }); } 然后我有一个视图模型,定义如下: namespace MyProject.ViewModels { [Bind(Excl
using MyProject.ViewModels;
[ChildActionOnly]
public PartialViewResult ShowMyView(int id)
{
return PartialView(new MyModel() { ModelID = id });
}
然后我有一个视图模型,定义如下:
namespace MyProject.ViewModels
{
[Bind(Exclude = "ModelID")]
public class MyModel: IValidatableObject
{
public MyModel()
{
Count = 1;
}
[Required]
[HiddenInput(DisplayValue = false)]
public int ModelID { get; set; }
[Required]
[Range(1, 9999)]
public int Count { get; set; }
public IEnumerable<ValidationResult> Validate(
ValidationContext validationContext)
{
if (ModelID <= 0)
yield return new ValidationResult("Model ID missing",
new[] { "ModelID" });
if (Count <= 0)
yield return new ValidationResult("Count cannot be zero",
new[] { "Count" });
}
}
}
它工作得很好(显示视图),但是当我定义实际模型时
@inherits WebViewPage<MyProject.ViewModels.MyModel>
@继承WebViewPage
它将不显示该视图,并给出找不到该视图的错误信息(带有它所查找的位置列表,包括确实存在的Views/Shared/ShowMyView.cshtml路径)
这似乎发生在我在项目中使用的任何模型类上。有任何关于我做错了什么的线索吗?尝试替换:
@inherits WebViewPage<MyProject.ViewModels.MyModel>
在ShowMyView.cshtml
视图的顶部。通常情况下,两者应该是相等的,但你永远不知道。另外,请确保在呈现此子操作时,正在传递id参数:
@Html.Action("ShowMyView", "SomeController", new { id = "123" })
是否有需要使用
@inherits
指令的原因?默认情况下,视图将使用在视图folderNo的web.config中定义的
,我也使用了@model
。事实上,这就是我在开始时使用的,然后我尝试了@inherits
,看看这是否有什么不同。这是我们作为插件编写的另一个MVC系统的一个局部问题。调用很好,但我尝试了使用@model,但没有任何区别。是的,我在Html.Action调用中包含了id参数。@TomvanEnckevort,嗯,这很奇怪。我无法重现你的问题。你能提供一个允许重新编程的逐步示例吗?
@model MyProject.ViewModels.MyModel
@Html.Action("ShowMyView", "SomeController", new { id = "123" })