4

いくつかの日付パラメーターを使用して Iframe URL をエンコードしています。

var object = {
                profileID: self.profileID(),
                organisationID: self.organisationID(),
                startDate: self.startDate(), // 09/04/2013 
                endDate: self.endDate() // 17/04/2013 
            };
iFrame.src = "ExportReportAllMediaDetailsCsv/?" + $.param(object);

エンコードされた URL:

http://dev.neptune.local/Report/ExportReportAllMediaDetailsCsv/?profileID=41&organisationID=2252&startDate=09%2F04%2F2013&endDate=17%2F04%2F2013

ただし、呼び出されているメソッドは、渡された日時を認識しないことがあります。

The parameters dictionary contains a null entry for parameter 'endDate' of non-nullable type 'System.DateTime'

これはメソッドのシグネチャです:

[CustomAuthorize(Definitions.RoleAnalystManager, Definitions.RoleProjectManager)]
public ActionResult ExportReportAllMediaDetailsCsv(int profileID, int organisationID, DateTime startDate, DateTime endDate)
4

3 に答える 3

1

英国形式の日付文字列を使用しています。onlyが機能していないので、9月4日として認識されているとendDate思います。startDate一方、17 番目の月がないため、オブジェクトendDateにバインドすることはできません。DateTime

文化を正しく設定する必要があるようです。以下を Web.Config の下に追加してみてください<system.web>

<globalization requestEncoding="utf-8" responseEncoding="utf-8"
    culture="en-GB" />

グローバリゼーションの詳細については、http://msdn.microsoft.com/en-us/library/c6zyy3s9(v=vs.100 ).aspx を参照してください。

于 2013-04-29T07:45:41.690 に答える
0

時々nullのように見えるendDate(または単に設定されていない)ので、パラメーターをnull許容型として宣言する必要があります(DateTime?):

public ActionResult ExportReportAllMediaDetailsCsv
    (int profileID, int organisationID, DateTime startDate, DateTime? endDate)

一方、日時形式が認識されないため、基本的に有効なDateTime値として解析できない可能性があります。

于 2013-04-29T07:44:14.057 に答える