@ Html.Raw(@ Url.Action())にJavascriptリストオブジェクトを渡すにはどうすればよいですか?@ Html.Raw(@ Url.Action())のJavascriptリストオブジェクトを渡す方法は?
私はjs Listオブジェクトとして次のプロパティを持つモデルを自分のコントローラに持っています。
コントローラのメソッドでこのモデルが必要です。
public ActionResult ExportDataExtReport(DataExtractionReportModel DataExtReportModel)
呼び出しは、オブジェクトによってコントローラに到達ヌルである
ReportModel.push({
ReportId : ReportSelID,
ReportName : "DataExtraction",
StartDate : DEYearSelID,
CategoryId : DataExtCategoryId,
SurveyId : QuestionnaireSelID,
SurveyName: QuestionaireName,
OperationalUnits : DataExtOpUnit
});
var link = '@Html.Raw(@Url.Action("ExportDataExtReport", "Location", new { DataExtReportModel = -1}))';
link = link.replace("-1", ,ReportModel[0]);
window.location.href = link;
GETを作成します。それぞれの名前/値のペアをクエリ文字列またはルート値として渡す必要があります –
通常、JSON.stringify(ReportModel [0])を使用します(Ajax呼び出しでビューを返します)。しかし、この場合は、window.locationを使用する必要があります。href、私はExcelファイルを生成する必要があります。私のモデルがいくつかのプロパティを持つことができるので、各名前/値のペアを渡すこととは別の方法がありますか? –
'$ .param()'メソッドを使って簡単にすることができます。しかし、オブジェクトを生成して配列にプッシュする理由は明確ではありません。値からクエリー文字列を生成するだけのコードは少なくなります。そして、あなたはすべてのプロパティの値が何であるかを見せていません( 'OperationalUnits'はコレクションを示唆していますので、あなたがそれを示しても動作しません) –