私の会社のイントラネット用の最初のASP.NET MVC 3 Webサイトを作成しています。それはかなり涼しい、私は私たちの電話システムによって記録されたオーディオを再生し、DBに保存されます。それはうまくいっていますが、私は単純なやり方で何かをするのが難しいです。私がもっている可能性が高い構文エラーを許してください。これは大まかな草案です。MVC 3のWebサイトでの動的リンクの問題
私は、すべてのAppNameのリストと各AppNameの隣にある別のビューへのリンクを表示するテーブルを持っています。リンクのテキストは関連付けられたすべてのCallDetailsのCount()ですそのアプリで
Iは、2つのクラスがあります。これは、この部分でうまくのAppNameを表示
// AppsController
private AppsContext db = new AppsContext();
public ViewResult Index()
{
return View(db.Apps.ToList());
}
// CallController method (from my current attempt)
public ActionResult CallCheck(int id)
{
bool? enabled = null;
var appcalls = from s in db.CallDetails
where s.AppID == id
&& s.Enabled.Equals(enabled)
select s;
string callnum = appcalls.Count().ToString();
return View(callnum);
}
:それぞれについて
public class Apps
{
public int AppId { get; set; }
public string AppName { get; set; }
}
public class CallDetail
{
public int Id { get; set; }
public int AppID { get; set; }
public byte[] FirstName { get; set; }
public byte[] LastName { get; set; }
....etc
}
文脈:
public class AppsContext : DbContext
{
public DbSet<Apps> Apps { get; set; }
}
public class CallContext : DbContext
{
public DbSet<CallDetail> CallDetails { get; set; }
}
それぞれのコントローラ方法以下のViewのViewをクリックすると、関連付けられたCallDetailごとにViewへのリンクを作成できます。しかし、ViewのモデルはAppsとそのコントローラ、AppsControllerなので、CallDetail Controllerから得られる情報を表示する方法はわかりません。
@model IEnumerable<myMessagePlayer.Models.Apps>
...
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.AppName)
</td>
<td class="appLink">
...
</td>
</tr>
}
は私が動作するように得ているかもしれない多くの異なる方法、いくつかを試してみたが、彼らは意味的に非MVCのように見えました。だから私は一般的なことを尋ねるだけだと思った "標準的な練習は何ですか?"質問のタイプ。
私はこの昨晩のようなことをやり始めましたが、それがうまくいくかどうか、それとも「やるか」ということがわかりませんでした。そこからビルドする例がたくさんあります。だから、AppsとCallDetailsでコンテキストメソッドを同じにしておきたいのですか? –
実際には、両方のオブジェクトを含むようにコンテキストを変更する必要があります。 (私の答えにこの変更を加えました)。これは正しいことです。この例は、ScottGuのブログ(http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx –
)でご覧になれます。ありがとう、これを撃つだろう。 –