c# - MVC Ajax:如何将字符串从视图发送到控制器
问题描述
与发送 json 对象相比,我发现通过 ajax 仅发送纯文本(字符串)存在一个小问题。
我目前有这个设置工作
(cs)html
<label for="search">
<i class="fa fa-search" onclick="sendtoC()"></i>
<input type="search" id="search" placeholder="Sök här..." autofocus; />
<input type="button" id="SÖK" value="SÖK" onclick="sendtoC()" />
脚本
<script>
var invalue;
var input = document.getElementById("search");
input.addEventListener("keyup", function go (event) {
if (event.keyCode === 13) {
invalue = document.getElementById("search").value;
sendtoC(invalue);
}
});
function sendtoC() {
$.ajax({
url: "/Home/SearchResults",
dataType: "json",
type: "GET",
contentType: 'application/json; charset=utf-8', //define a contentType of your request
cache: false,
data: { input: invalue },
success: function (data) {
if (data.success) {
alert(data.message);
}
},
error: function (xhr) {
alert('error');
}
});
}
和电流控制器
public ActionResult SearchResults(string input)
{
Data.gsPersonLista = db.GetPerson(input);
return Json(new { success = true, message = input }, JsonRequestBehavior.AllowGet);
}
我想直接向控制器发送一个字符串,我尝试了这个脚本
function sendtoC() {
$.ajax({
url: "/Home/SearchResults",
dataType: "text",
type: "GET",
contentType: 'application/json; charset=utf-8', //define a contentType of your request
cache: false,
data: invalue ,
success: function (data) {
if (data.success) {
alert(data.message);
}
},
error: function (xhr) {
alert('error');
}});}
用这个控制器
public ActionResult SearchResults(string input)
{
Data.gsPersonLista = db.GetPerson(input);
return View(input);
}
但是这不起作用,输入字符串显示为 null 并且 ajax 给出了错误。我目前不知道如何解决这个问题,也不知道是什么导致了错误。如果有人能指出我正确的方向,我将不胜感激
解决方案
您可以在$.get
此处简单地使用该功能,其次您应该使用Ùrl.Action
帮助程序来获取针对控制器操作方法的 url,因为魔术字符串会在部署中导致应用程序可能部署在子目录中的问题,在这种情况下,url 变为错误的 :
$.get('@Url.Action("SearchResults","Home")?input='+invalue , function (data) {
if (data.success) {
alert(data.message);
}
});
推荐阅读
- java - 我的游戏循环没有绘制生成对象
- python - 当我尝试在服务器上的 HTML 中打开新链接时,它会将链接与服务器地址结合起来并给出错误
- clojure - 在这种情况下突变的替代方案?
- redux - 元素类型无效:应为字符串/检查 `Provider` 错误的渲染方法
- google-cloud-platform - 以自动方式验证 gcloud 服务帐户
- python - 将数据拆分为多个文件:如何处理(未知数量)多个连接
- android - 如何支持较早的安卓版本?
- html - 向 CSS 中的一个元素添加多个变换值
- data-mining - 数据分析 vs 数据科学 vs 数据挖掘 vs 数据分析
- ms-access - 在 Access 中存储来自报表的数据