我根据发送的值使searchbox获取我的数据库的一个注册表,所以在我看来:
<p> Manifest: <input type="text" name="manifest" id="manifest" /> <input type="submit" value="search" name="btnGetForEdith" id="btnGetForEdith" /></p>
JS:
$(document).ready(function () {
GetModulLogWasteForEdit();
$("#btnGetForEdith").click(onGetModulLogWasteSuccess);
});
function GetModulLogWasteForEdit() {
currentId = 0;
try {
$(function () {
$.ajax({
cache: false,
type: "get",
dataType: "json",
url: "/LogWaste/GetForEdit",
contentType: "application/json; charset=utf-8",
success: onGetModulLogWasteSuccess,
error: function (response) {
ErrorMessage("Error", GetTextError(response));
}
});
});
} catch (e) {
ErrorMessage("Error", e.message);
}
}
控制器:
public ActionResult GetForEdit(string manifest)
{
string result = string.Empty;
var userId = User.Identity.GetUserId();
var currentUser = UserClass.GetUserBranchOfficeId(userId);
try
{
result = new JavaScriptSerializer().Serialize(LogWasteModule.GetForEdit(currentUser));
}
catch (Exception)
{
throw;
}
return Content(result, "application/json");
}
问题是我没有在我的控制器中获得“显示”值null
所以我无法使用它。谁能解释我为什么会这样?此致
答案 0 :(得分:0)
尝试执行放置ajax请求的匿名函数
function GetModulLogWasteForEdit() {
currentId = 0;
try {
$(function () {
$.ajax({
cache: false,
type: "get",
dataType: "json",
url: "/LogWaste/GetForEdit",
contentType: "application/json; charset=utf-8",
success: onGetModulLogWasteSuccess,
error: function (response) {
ErrorMessage("Error", GetTextError(response));
}
});
})(); // Add () to execute the function
} catch (e) {
ErrorMessage("Error", e.message);
}
}
答案 1 :(得分:0)
#Structure
src
|---makesite
|---sitemaker(app)
|---templates
| |----main.html
| |----static
| |-css
| |-style.css
|-static
|-manage.py
#The settings.py
STATIC_URL = '/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),]
STATIC_ROOT = os.path.join(BASE_DIR,"templates/static")
#The urls.py
from django.conf.urls import url
from django.contrib import admin
from makesite.views import make_site
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^main/',make_site),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, documents_root=settings.STATIC_ROOT)
#The File structure
#The template
<!DOCTYPE html>
{% load staticfiles %}
<html>
<head>
<title>Main Site</title>
<link rel='stylesheet prefetch' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'>
<link rel= "{% static %}'css/style.css'" href="style.css">
答案 2 :(得分:0)
为了获得你必须发送的价值,我不知道你在做什么。加上这个:
data: {'manifest': manifest }
所以看起来应该是这样的:
$(function () {
$.ajax({
cache: false,
type: "get",
dataType: "json",
url: "/LogWaste/GetForEdit",
data: {'manifest': manifest }
contentType: "application/json; charset=utf-8",
success: onGetModulLogWasteSuccess,
error: function (response) {
ErrorMessage("Error", GetTextError(response));
}
});
});
我希望这有帮助!
答案 3 :(得分:0)
请在Javascript中使用以下代码
$(document).ready(function () {
$("#btnGetForEdith").click(function () {
GetModulLogWasteForEdit();
});
});
function GetModulLogWasteForEdit() {
currentId = 0;
try {
$(function () {
$.ajax({
cache: false,
type: "GET",
dataType: "json",
url: "/LogWaste/GetForEdit?manifest=" + $("#manifest").val(),//Manifest will be passed in querystring like this
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
},
error: function (response) {
console.log("Error", GetTextError(response));
}
});
});
} catch (e) {
ErrorMessage("Error", e.message);
}
}
在控制器中
public ActionResult GetForEdit(string manifest)
{
string result = string.Empty;
var userId = User.Identity.GetUserId();
var currentUser = UserClass.GetUserBranchOfficeId(userId);
try
{
result = new JavaScriptSerializer().Serialize(LogWasteModule.GetForEdit(currentUser));
}
catch (Exception)
{
throw;
}
//Had changed this line as your are using `dataType: "json"`, as return data type
return Json(result, JsonRequestBehavior.AllowGet);
}