2017-03-22 14 views
0

行をクリッキングした後、コントローラにモデルを渡したいと思います。ASP.NET MVCはテーブルからオブジェクトをコントローラに渡しますか?

これは動作しないコードです。

<table class="table"> 
<tr> 
    <th> 
     <p>Sender</p> 
    </th> 
    <th> 
     <p>Subject</p> 
    </th> 
    <th> 
     <p>Received</p> 
    </th> 
    <th> 
     <p>HasAttachment</p> 
    </th> 
    <th></th> 
</tr> 

@foreach (var item in Model.Inbox) { 
<tr class="mail-row" onclick="location.href = '@(Html.ActionLink ("", "MailViewer", "Profile", new { mail = item }, null))'"> 
    <td> 
     @Html.DisplayFor(modelItem => item.Sender) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Subject) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Received) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.HasAttachment) 
    </td> 
</tr> 
} 

</table> 

私はUrl.Actionを使用しようとしましたが、実際のオブジェクトではなくURLにオブジェクトタイプしかありませんでした。

私はこのオブジェクトを送信しよう:

public class Mail 
{ 
    public string Sender { get; set; } 
    public string Subject { get; set; } 
    public DateTime Received { get; set; } 
    public bool HasAttachment { get; set; } 

    public string content { get; set; } 
} 
+0

「Url.Action」でプリミティブなデータ型を送ることができます。あなたのオブジェクトに必要な全てのプリミティブ型をあなたの 'Url.Action'に入れて、あなたのコントローラにオブジェクトを直列化します。 – NotTelling

+1

IDまたはプライマリキーをコントローラに送信して、コントローラでモデルを送信するのはなぜですか。 – Shan

+0

http urlを通してオブジェクトを渡すことはできませんか? – Amsel

答えて

1

ことがjsonで可能ですが、あなたはしかし、あなたはidを送信し、そのidではなく、あなたがこのようにそれを行うことができますjsonに基づいて、動作中のデータを取得する必要があります

私のアクションリンクは

@Html.ActionLink("senddata", "MailViewer",new{ @data = Json.Encode(item) }) 

と自分の行動ワットになりますこのようなものでしょうか

public ActionResult MailViewer(string data) 
     { 
      var result = System.Web.Helpers.Json.Decode<Mail>(data); 

      return View(); 

     } 
関連する問題