2 つのアセンブリがあるとします。
project.web
project.lib
project.web アセンブリは、いくつかのビジネス ロジックを含む project.lib を参照します。project.lib の単純なクラス:
public class Person
{
public string Name;
}
project.web.Controllers で:
Using project.lib.models;
public class PersonController : Controller
{
Person person = new Person();
public ActionResult Index()
{
return View(person);
}
}
これは私がいくつか質問がある部分です。多くのサンプル プロジェクトで、ビュー (この場合は Index.aspx) で次のことを確認しました。
<% @Import Namespace="project.lib.models" %>
Model オブジェクトを次のように使用できるようにします。
<%= Model.Name %>
私はそれを例のように機能させていません。私はしなければなりませんでした:
<%= (Model as Person).Name %>
また
<%
var person = (Person)Model;
Response.Write(person.Name);
%>
なぜこのようになるのでしょうか。この厳しさの理由は何ですか?コメント? 提案?私のクラス定義は次のようになります。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace project.lib.models
{
public class Person
{
public Int64 PersonID;
public string DisplayName;
public string RealName;
}
}