c# - 如何将 .ajax POST 制定为控制器中的操作方法并返回到另一个操作方法?
问题描述
我一整天都在努力使用这种方法,我的 .ajax POST 命中了正确的操作方法,但我的问题是在它对数据库执行 POST/Update 之后,我试图使用 RedirectToAction("Add_Contract" , "Contract", model) 来显示我的 "Add_Contract" 视图,我的问题是 "Add_Contract" 视图从不出现,"Add_Dataset" 重新出现。我需要使用 POST 更新数据集数据以便稍后重新加载,并显示“Add_Contract”的视图以便我可以输入合同信息,然后使用更新的合同信息重新加载“Add_Dataset”视图。
我认为我的问题出在 .ajax 公式中:
这是我的 Ajax(从 Add_Dataset 调用)
$("#AddContract").click(function () {
var contractAdd = "true";
var datasetID = $("#dataset_Id").val();
var datasetPK = $("#Dataset_PK").val();
// Dataset Form Data
var data = new FormData;
data.append("datasetId", datasetID);
data.append("Dataset_PK", datasetPK);
data.append("add_Contract", contractAdd);
$.ajax({
type: "POST",
url: key + "/Datasset/Add_Dataset/",
data: data;
contentType: false,
processData: false,
success: function (ajaxRespond) {
if (ajaxRespond.dbUpdateResult == "success") {
}
}
})
})
下面是动作方法:
[HttpPost]
public ActionResult Add_Dataset(Dataset model)
{
BaseUrl = ConfigurationManager.AppSettings["baseServiceUrl"];
using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri(BaseUrl);
client.DefaultRequestHeaders.Clear();
//Create a Dataset Record
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//HTTP POST
var postTask = client.PutAsJsonAsync<Dataset>("api/datasets/" + model.Dataset_ID, model);
postTask.Wait();
var result = postTask.Result;
if (result.IsSuccessStatusCode)
{
if (!model.add_Contract)
{
return RedirectToAction("Add_Dataset");
} else
{
**return RedirectToAction("Add_Contract", "Contract", model);**
}
}
}
return RedirectToAction("Add_Dataset");
}
Add_Contract
// Add a Contract
[HttpGet]
public async Task<ActionResult> Add_Contract(Dataset model)
{
var returned = new Contract();
return View(returned);
}
解决方案
推荐阅读
- reactjs - 使用 reactjs 进行 Youtube 直播
- spring-batch - Spring Batch Partition线程不一起执行
- ruby - 如果proc是ruby中的可选参数,为什么proc不需要默认值
- javascript - NodeJS中的递归函数来检查文件或目录
- python - 如何使用递归从字符串列表中找到第一个字符串?
- flutter - 此类(或此类继承自的类)被标记为“@imutable”,但其一个或多个实例字段不是最终的
- python - 有效地将大量文件移动到不同的文件夹结构
- python-3.6 - 在 wxpython 的滚动面板中添加 sizer 时,Python 已停止工作
- c++ - 检测是否将 3 个或 4 个数据值写入控制台
- python - Python制作匹配对