2016-06-29 12 views
0

smtp電子メールのパスとしてコントローラアクションを渡すことは可能ですか?mvc email with controller action

私が探しものを私を取得し、私のコントローラでは、この方法があります:

public void ConnectToDatabase(Modelclass uc) 
    { 
     // IList<Modelclass> list = new List<Modelclass>(); 
     var query = (from a in db.DBTable 
        where a.IDNumber.Equals(uc.ID_Number) 
        select a).ToList(); 
     var tt = query; 
    } 

を、私は、同じコントローラ上でこのアクションにこのメソッドを呼び出します。

[HttpPost] 
    public ActionResult GetUserInput(ModelClass model) 
    { 

     var idnumber = model.ID_Number; 
     var startdate = model.Start_Date; 
     var enddate = model.End_Date; 

     ConnectToDatabase(model); 
     // validate your date here and return True if validated 
     if (model.End_Date < model.Start_Date) 
     { 
      return Json(false); 

     } 
     return View("Search"); 

    } 

ので、私がしたいですこの "connectToDatabase"メソッドを送信する電子メールの添付ファイルとして渡します。

どこから始めますか?

+0

と同じマッチングパラメータを使用してコントローラを作成した後、次に@fulufheloこんにちは、私はお願いしたいと思い、メール

message.Body =String.Format("<b><i>Click the following link to view attachment</i></b> <a href =\"" + callbackUrl + "\">here</a>"); 

にURLを割り当てます'ConnectToDatabase'や' GetUserInput'を電子メールに渡しますか? –

+0

ConnectToDatabaseを渡したい@ShawnYan –

+0

AFAIKメソッドを電子メールに渡すことはできません。ユーザーがリンクをクリックしたときに呼び出される 'Url.Action'を渡すことができます。 –

答えて

0

これがあなたの望むものなのかどうかはわかりませんが、あなたはこのようなstmpメールにUrl.Actionを書くことができます。

var callbackUrl = Url.Action("Action", "Controller", 
        new 
        { 
         Idnumber = model.ID_Number; 
         Startdate = model.Start_Date; 
         Enddate = model.End_Date; 
        }, protocol: Request.Url.Scheme); 

ことがUrl.Action

public void ConnectToDatabase(string IdNumber, DateTime Startdate, DateTime Enddate) 
{ 
    //do something here... 
} 
+0

こんにちは@Shawnデータベースからの結果が添付されていない –

+0

実際にメールを受け取ったときに添付ファイルへのリンクがありますが、リンクをクリックすると404エラーが表示されます。 –

+0

あなたの添付ファイルは何らかの種類のExcelファイルですか、単にリンクですか? –

関連する問題