0
をコントローラに「の$ .post」の後に表示するリダイレクト:MVC - ボタンをクリックするだけで
$("#newSave").click(function() {
AddNewAccount();
});
私は、関数呼び出しを作っていますへ:
function AddNewAccount() {
$.post("/RxCard/AddAccount",
{
NewAccountName: $("#newAccountName").val(),
NewAccountAddress: $("#newAccountAddress").val(),
NewAccountCity: $("#newAccountCity").val(),
NewAccountState: $("#newAccountState").val(),
NewAccountZip: $("#newAccountZip").val(),
NewAccountArea: $("#newArea").val(),
NewAccountPrefix: $("#newPrefix").val(),
NewAccountSuffix:$("#newSuffix").val()
}, function (errorMsg) {
if (errorMsg.length > 0) {
$('div#divSearchList').empty();
$('div#divSearchList').html(errorMsg);
}
else {
loadAccount(accountId, false);
}
});
$("body").css("cursor", "default").delay(1000);
}
そこからのデータがありますコントローラのアクションに渡さ:
から(私が表示しようとしていますビュー用)モデルを生成するためにpublic ActionResult AddAccount(string NewAccountName, string NewAccountAddress, string NewAccountCity, string NewAccountState, string NewAccountZip, string NewAccountArea, string NewAccountPrefix, string NewAccountSuffix)
{
DuplicatesPage model = GetDups(NewAccountName, NewAccountAddress, NewAccountCity, NewAccountState, NewAccountZip, NewAccountArea, NewAccountPrefix, NewAccountSuffix);
return RedirectToAction("DuplicatePage", model);
}
:
private DuplicatesPage GetDups(string NewAccountName, string NewAccountAddress, string NewAccountCity, string NewAccountState, string NewAccountZip, string NewAccountArea, string NewAccountPrefix, string NewAccountSuffix)
{
DuplicatesPage model = new DuplicatesPage();
duplicates results = new duplicates();
var phone = NewAccountPrefix.ToString() + NewAccountSuffix.ToString();
var datenow = DateTime.Now;
var firstofmonth = new DateTime(datenow.Year, datenow.Month, 1);
OdbcCommand cmd1 = new OdbcCommand();
cmd1.CommandText = "{call dbo.Maint_AddClinic(?,?,?,?,?,?,?,?,?)}";
cmd1.Parameters.AddWithValue("@Name", NewAccountName);
cmd1.Parameters.AddWithValue("@Address", NewAccountAddress);
cmd1.Parameters.AddWithValue("@City", NewAccountCity);
cmd1.Parameters.AddWithValue("@State", NewAccountState);
cmd1.Parameters.AddWithValue("@Zip", NewAccountZip);
cmd1.Parameters.AddWithValue("@AreaCode", NewAccountArea);
cmd1.Parameters.AddWithValue("@PhoneNumber", phone);
cmd1.Parameters.AddWithValue("@StartDate", firstofmonth);
cmd1.Parameters.AddWithValue("@AccountTypeID", 2);
cmd1.Parameters.AddWithValue("@IgnoreDupAddress", 1);
DataTable dt = GetData(cmd1);
foreach (DataRow row in dt.Rows)
{
Pharmacy pharmacy = new Pharmacy();
pharmacy.AccountName = row["AccountName"].ToString();
pharmacy.Address = row["Address"].ToString();
pharmacy.City = row["City"].ToString();
pharmacy.ZipCode = row["ZipCode"].ToString();
results.Pharmacies.Add(pharmacy);
}
results.Count = dt.Rows.Count;
model.DupResults = results;
return model;
}
と終わり:
public ActionResult DuplicatePage()
{
return View("Duplicates");
}
の問題は、私は、ビューDuplicates
にリダイレクトされておりませんということです。私は同じページにとどまります。問題はおそらく明らかですが、私はそれを見つけることはできません。ボタンをクリックしてAddNewAccount
に電話をかけた後にリダイレクトしようとしましたが、当時の私のモデルDuplicates
は生成されません。
はあなたを行います
を使用すると、使用例のため、再度ご$.post
完全なポストに変更、または応答を持つにリダイレクトするurl
を送信し、クライアント側で手動でリダイレクトを行うとする必要がある。この問題を解決するために、ポストバックを行う方法に関する良い記事を知っていますか?私はそれらに精通した人ではない。 – julian私はあなたの 'HTML'を見ていませんが、あなたがデータを書き込むフィールドのセットであると推測できます。もしそうなら、それらをフォームに入れ、' @ Html.BeginForm'を使ってポスト可能なフォームにしてください。のような[ここ](http://stackoverflow.com/questions/8356506/how-to-write-html-beginform-in-razor) –