1

データベースに次のようなテーブルがあります。

[id] [uniqueidentifier] NOT NULL,
[user_id] [uniqueidentifier] NOT NULL,
[download_type] [nvarchar](50) NOT NULL,
[download_id] [nvarchar](50) NOT NULL,
[download_date] [datetime] NOT NULL,
[user_ip_address] [nvarchar](20) NOT NULL,

id主キーとして定義されています。

このテーブルに新しいレコードを挿入したい。これが私のコードです。

CustomerPortalEntities_Customer_Downloads dbcd = new CustomerPortalEntities_Customer_Downloads();

public ActionResult Download(string id)
{
    var collection = new FormCollection();
    collection.Add("user_id", Membership.GetUser().ProviderUserKey.ToString());
    collection.Add("download_type", "Car");
    collection.Add("download_id", id);
    collection.Add("download_date", DateTime.Now.ToString());
    collection.Add("user_ip_address", Request.ServerVariables["REMOTE_ADDR"]);            

    dbcd.AddToCustomer_Downloads(collection);

    return Redirect("../../Content/files/" + id + ".EXE");
}

私が得るエラーは行 dbcd.AddToCustomer_Downloads(collection); にあります。

「CustomerPortalMVC.Models.CustomerPortalEntities_Customer_Downloads.AddToCustomer_Downloads(CustomerPortalMVC.Models.Customer_Downloads)」に最適なオーバーロードされたメソッドの一致には、無効な引数がいくつかあります

引数 '1': 'System.Web.Mvc.FormCollection' から 'CustomerPortalMVC.Models.Customer_Downloads' に変換できません

これを機能させるには、何を変更する必要がありますか?

4

2 に答える 2

4

タイプのオブジェクトCustomerPortalMVC.Models.Customer_Downloadsをメソッドに提供し、次のようにデータ コンテキストAddToCustomer_Downloadsを呼び出す必要があります。SaveChanges

public ActionResult Download(string id) 
{ 
    var item = new CustomerPortalMVC.Models.Customer_Downloads(); 
    item.user_id = Membership.GetUser().ProviderUserKey.ToString(); 
    item.download_type = "Car"; 
    item.download_id = id; 
    item.download_date = DateTime.Now.ToString(); 
    item.user_ip_address = Request.ServerVariables["REMOTE_ADDR"];             
    dbcd.AddToCustomer_Downloads(item); 
    dbcd.SaveChanges(); 
    return Redirect("../../Content/files/" + id + ".EXE"); 
} 
于 2012-06-19T21:03:34.937 に答える
1

Customer_Downloads クラスのインスタンスを作成し、それを AddToCustomer_Downloads メソッドに渡す必要があります。エラー メッセージは、そのメソッドのインターフェイスが Customer_Downloads オブジェクトを想定しているが、FormCollection オブジェクトを渡していることを示しています。

于 2012-06-19T20:59:59.637 に答える