私はMvcContribのポータブルエリアを使用し始めました。非常に単純なビューではすべて正常に動作しますが、私のビューでカスタムモデルを使用したいとき名前空間が存在しないというエラーです。ASP.NET MVC 3 - ポータブルエリアビューでモデルが見つかりません
ビューはリソースとして埋め込まれるように設定されています。そしてこのビューのインテリセンスはモデルをうまく認識します。
問題の原因は何ですか?
UPDATE
私はそれは私がプラグインをロードするためにMEFを使っているという事実としなければならないかもしれないと思います。私はコントローラをロードするときに同様の問題がありました。適切なコントローラーがデフォルトのcontrollerfactoryによって見つからなかった場合は、MEFコントローラーリストを表示するカスタムControllerFactoryを構築しなければなりませんでした。
UPDATE 2
私はMEF-ロードアセンブリとRazorBuildProviderを提供することにより、エラーを取り除くことができました。しかし、今はもう見えません。ビューが強く型付けされていない場合は、それが見つかります。
RazorBuildProvider.CodeGenerationStarted += (object sender, EventArgs e) =>
{
RazorBuildProvider provider = (RazorBuildProvider)sender;
foreach (var module in ExternalComponents)
{
provider.AssemblyBuilder.AddAssemblyReference(module.GetType().Assembly);
}
};
ソースコード
モデル
namespace Isis.Plugins.TextArea.TextArea.Models
{
public class TextAreaModel
{
[Required(ErrorMessage = "Field is required")]
public string Message { get; set; }
}
}
コントローラー:
namespace Isis.Plugins.TextArea.TextArea.Controllers
{
[Export(typeof(IController))]
public class IndexController : Controller
{
[HttpGet]
public ActionResult Index()
{
return View(new TextAreaModel() { Message = "Hallow!" });
}
[HttpGet]
public ActionResult Editor()
{
return View(new TextAreaModel() { Message = "EDITOR CONTENT" });
}
}
}
ビュー
@model Isis.Plugins.TextArea.TextArea.Models.TextAreaModel
@Model.Message
エラー:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0234: The type or namespace name 'Plugins' does not exist in the namespace 'Isis' (are you missing an assembly reference?)
Source Error:
Line 27:
Line 28:
Line 29: public class _Page_Areas_TextArea_Views_Index_Index_cshtml : System.Web.Mvc.WebViewPage<Isis.Plugins.TextArea.TextArea.Models.TextAreaModel> {
Line 30:
Line 31: #line hidden