-1

我正在尝试使用以下代码在 MVC 视图中获取 web.config 值。

function GetMinMax(Code) {
    var newCode= Code;
    var minCode =newCode+"MinValue";
    var maxCode =newCode+"MaxValue";

    var minValue = @Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings[minCode]);
    var maxValue = @Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings[maxCode]);
    return [minValue, maxValue];
} 

但是 javscript 变量minCodemaxCode未定义。请让我知道是否有可能实现。

4

1 回答 1

2

您不能直接从 javascript 获取 web.config 值。如果可能的话,那将是一个巨大的安全漏洞。考虑一下。

如果您想这样做,您必须向服务器发出 AJAX 请求,将您的 javascript 变量 ( code) 传递给服务器,然后服务器将在 web.config 中查找配置值并将结果返回给客户端:

function GetMinMax(code, callback) {
    var minValueKey = code + 'MinValue';
    var maxValueKey = code + 'MaxValue';

    $.getJSON(
        '/some_controller/some_action', 
        { 
            minValueKey: minValueKey, 
            maxValueKey: maxValueKey 
        }, 
        callback
    );
}

以及您的相应操作:

public ActionResult SomeAction(string minValueKey, string maxValueKey) 
{
    int minValue = int.Parse(ConfigurationManager.AppSettings[minValueKey]);
    int maxValue = int.Parse(ConfigurationManager.AppSettings[maxValueKey]);

    var result = new[] { minValue, maxValue };
    return Json(result, JsonRequestBehavior.AllowGet);
}

以下是您在客户端上使用该功能的方式:

GetMinMax('SomeCode', function(result) {
    // do something with the result here => it will be an array with 2 elements
    // the min and max values
    var minValue = result[0];
    var maxValue = result[1];

    alert('minValue: ' + minValue + ', maxValue: ' + maxValue);
});
于 2013-09-03T07:06:32.877 回答