0

ユーザーに入力データを提供するように求める cshtml ページがあり、それを文字列に連結して、コントローラーで動的 LINQ クエリを作成する必要があります。このビューはモデルを使用しません。これまでのHTMLコードは次のとおりです。

<div id="filter">
Enter a customer name. It can be a part of a name to get broader results. (optional)
<br />
<input type="text", id="customer", value="") />
<br />
Enter a case status ( OPEN or CLOSED ), or leave blank to get both. (optional)
<br />
<input type="text", id="status", value="") />
<br />
Enter a date range to filter by date. (optional)
<br />
Start Date 
<input type="text", id="startdate", value="") />
End Date
<input type="text", id="enddate", value="") />
<br />
Enter a PromoID (optional)
<br />
<input type="text", id="promoid", value="") />
<br />
Enter a Complaint Code (optional)
<br />
<input type="text", id="complaintcode", value="") />
</div>

@Html.ActionLink("Export Case Data To Excel for Analysis", "CaseReport", "Reports",   "Excel", new { stringFilter = mystring })

コントローラー アクションには、stringFilter という文字列パラメーターがあります。基本的に、文字列フィルターを作成してコントローラーに渡す必要があります。Dynamic Linq Query ライブラリを使用しています。

DOM から文字列値を取得するにはどうすればよいですか?

4

1 に答える 1

1

あなたができることの1つは、ボタンクリックイベントハンドラーでそれらをすべて連結することです..

$('#form-input-submit-button').click(function() { /* do it here & then submit. */ });

ただし、必要なすべてのパラメーターを MVC コントローラー アクション メソッドに含めることをお勧めします。

[HttpPost]
public void CaseReport(string promoId, string coplaintCode, ... ) { }

または強く型付けされたモデルを持っている方が良い

public class ReportModel
{
    public string PromoId { get; set; }
    public string ComplaintCode { get; set; }
    ...
}

したがって、次のことができます。

[HttpPost]
public void CaseReport(ReportModel model) { /* Validate ModelState */ }

実際、MVC 頭字語のモデルが必要です。

しかし、あなたもすることができます

[HttpPost]
public void CaseReport(FormCollection form)
{
}

すべての着信データを表示するには。

于 2013-02-20T18:06:18.340 に答える