特定のレコードの [編集] リンクをクリックすると、ビュー カミソリでコントローラーからその ID のデータを取得し、編集用のフォームに表示します。しかし、それはエラーをスローしています。データベースからデータを取得していますが、ビューにアクセスするとすぐに各フィールドにエラーがスローされます。
エラー:
コンパイラ エラー メッセージ: CS1061: 'System.Collections.Generic.IEnumerable' には 'AppName' の定義が含まれておらず、タイプ 'System.Collections.Generic.IEnumerable' の最初の引数を受け入れる拡張メソッド 'AppName' が見つかりませんでした ( using ディレクティブまたはアセンブリ参照がありませんか?
Source Error:
Line 8: <fieldset>
Line 9: <div class="editor-label grid_2">
Line 10: @Html.LabelFor(model => model.AppName) :
Line 11: </div>
Line 12: <div class="editor-field grid_3">
何が間違っているのかわかりません。これが私のコードです:
[編集] リンクをクリックすると呼び出されるコントローラー:
[Authorize]
public ActionResult UpdateAPIForm(string id,string appname)
{
try
{
var a = HttpContext.User.Identity.Name;
var context = new ndCorp_SiteEntities();
var viewModel = (from du in context.DevUserInfoes
join dc in context.DevContactInfoes on du.UserName equals dc.UserName
join dm in context.DevMarketplaceInfoes on du.UserName equals dm.UserName
join dm1 in context.DevMarketplaceInfoes on dc.AppName equals dm1.AppName
where (du.UserName == a && dc.AppName == appname )
select new NewAPIFormModel()
{
AppName = dc.AppName,
Email = dc.DevEmail ,
OrgName = dc.OrgName ,
DevName = dc.DevName ,
ClientID = dc.ClientID ,
ClientSecret = dc.ClientSecret ,
RedUrl = dc.Url ,
AppNameForMP = dm.NewAppNameForMP ,
AppDesc = dm.AppDesc ,
DoYouAgree = dm.DispInPublicMP.Value ,
mobil = dm.ChkMobility.Value ,
legal = dm.ChkLegal.Value ,
docmgm = dm.ChkDocMgm.Value ,
finser = dm.ChkFinSer.Value ,
microoff = dm.ChkMicOff.Value ,
saleforce = dm.ChkSalesForce.Value ,
scanner = dm.ChkScanMF.Value ,
wordper = dm.ChkWordPer.Value ,
deskext = dm.ChkDeskExt.Value ,
other = dm.ChkOther.Value ,
//updlogo = dm.UpdLogo,
// pricing =Convert.ToString(dm.Pricing),
pricingURL = dm.UrlPricing,
contactinfo = dm.Contact,
}).ToList();
//select dc;
return View(viewModel);
//return View();
}
catch (Exception ex)
{
Console.Write(ex);
TempData["msg"] = ex.Message.ToString();
return View();
}
}
これが私の見解です:
@model IEnumerable<N.Models.NewAPIFormModel>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label grid_2">
@Html.LabelFor(model => model.AppName) :
</div>
<div class="editor-field grid_3">
@Html.TextBoxFor(model => model.AppName, new { @class = "demo-field-longer" })
</div>
<div class="editor-label1 grid_2">
Must be unique
</div>
<div class="grid_3 error long" style="margin-left:250px">
@Html.ValidationMessageFor(model => model.AppName)
</div>
<div class="clear"></div>
<div class="editor-label grid_2">
@Html.LabelFor(model => model.Email):
</div>
<div class="editor-field grid_3">
@Html.TextBoxFor(model => model.Email, new { @class = "demo-field-longer" })
</div>
<div class="grid_3 error long" style="margin-left:250px">
@Html.ValidationMessageFor(model => model.Email)
</div>
<div class="clear"></div>
<div class="editor-label grid_2">
@Html.LabelFor(model => model.DevName):
</div>
<div class="editor-field grid_3">
@Html.TextBoxFor(model => model.DevName, new { @class = "demo-field-longer" })
</div>
<div class="grid_3 error long" style="margin-left:250px">
@Html.ValidationMessageFor(model => model.DevName)
</div>
.
.
.
.
<div class="editor-field grid_2 submit">
<input type="submit" value="Submit" id="demo-submit-button"/><br />
@ViewData["DemoMessage"]
</div>
</fieldset>
そして、ここに私のモデルがあります:
public class NewAPIFormModel
{
[Required]
[Email]
[DisplayName("Developer Email")]
public string Email { get; set; }
[Required]
[DisplayName("Application Name")]
public string AppName { get; set; }
[Required]
[DisplayName("Organization Name")]
public string OrgName { get; set; }
[Required]
[DisplayName("Developer Name")]
public string DevName { get; set; }
[Required]
[DisplayName("App Key/ClientID")]
public string ClientID { get; set; }
[Required]
[DisplayName("Client_Secret")]
public string ClientSecret { get; set; }
[Required]
[DisplayName("Redirect_url")]
public string RedUrl { get; set; }
[Required]
[DisplayName("Application Name")]
public string AppNameForMP { get; set; }
[Required]
[DisplayName("Application Description")]
public string AppDesc { get; set; }
.
.
.
.