[英]How to send data from controller to viewmodel textbox
我正在做一個MVC項目,很有趣,它從公共API提取數據,顯示並根據用戶輸入進行計算。 我已接近目標的盡頭,但過去一天遇到的一個問題阻礙了我的進步。
問題如下:
我希望能夠從控制器中獲取數據,並在視圖中的可寫文本框內按一下按鈕來顯示(這樣,用戶既可以通過輸入用戶名並從公共API提取數據來自動生成數據,或指定自己的自定義數據)。
視圖
@{
ViewBag.Title = "Herblore";
Enter you name @Html.TextBox("Name")
<input type="submit" id="SubmitName" value="Submit" />
<script type = "text/javascript">
$('#SubmitName').click(function() {
var url = "/Calculator/PlayerLevelMsg";
var name = $('#Name').val();
$.get(url, {
Brugername: name
}, function(data) {
$("#lData").html(data);
});
})
</script>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-3">
<h3 style="font-size: 24px">Current Level</h3>
</div>
<div class="col-md-3 col-md-pull-1">
<h3><output id="lData"/></h3>
</div>
<div class="col-md-3 col-md-pull-1">
<h3 style="font-size: 24px">Current EXP</h3>
</div>
<div class="col-md-3 col-md-pull-2">
<h3><input type="text" id="lData" /></h3>
</div>
</div>
</div>
</div>
我的Javascript允許我在計算器控制器類中運行此控制器:
public string PlayerLevelMsg(string BrugerName) {
int Firemaking = 12;
var playerdata = new OS_Efficiency_Calculator.Controllers.PlayerSearchController();
string PlayerLevel = playerdata.GetLevel(BrugerName, Firemaking);
string moreLevel = "PlayerLevel = 85";
if (!String.IsNullOrEmpty(BrugerName))
return "Player Level" + " " + moreLevel;
else
return "Please enter your name.";
}
它返回一個包含來自API的單個值的字符串-以重現我的問題,注釋掉從項目中其他類收集的字符串並使用基本文本字符串而言,這並不重要,我得到的結果,所以如果您想復制:
public string PlayerLevelMsg(string BrugerName) {
if (!String.IsNullOrEmpty(BrugerName))
return "Player Level = 99";
else
return "Please enter your name.";
}
我的問題如下; 使用上面的代碼,我可以在“ <output id="lData"/>
“行中很好地查看controller
<output id="lData"/>
-但是,這不是文本框,因此用戶無法對其進行編輯。
另一方面,不會。 這可能是因為它是一種輸入類型,但是我找不到文本框輸出類型,我也沒有足夠的MVC經驗來完全理解為什么我不能僅僅通過ID將文本框綁定到值上,在一般的WPF應用程序(我花了很多時間練習)上的工作情況還不錯。
在我看來,對此應該有一些非常簡單的答案,希望大家能為我提供幫助,並且所提供的半代碼已足夠; 如前所述,理想的解決方案是在這張圖片中:
兩個值都將是“ 85”,但該文本框必須堅持不應該更改-非常感謝您抽出寶貴時間瀏覽!
@{
ViewBag.Title = "Herblore";
Enter you name @Html.TextBox("Name")
<input type="submit" id="SubmitName" value="Submit" />
< script type = "text/jscript" >
$('#SubmitName').click(function() {
var url = "/Calculator/PlayerLevelMsg";
var name = $('#Name').val();
$.get(url, {
Brugername: name
}, function(data) {
$("#lData").val(data);
});
})
< /script>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-3">
<h3 style="font-size: 24px">Current Level</h3>
</div>
<div class="col-md-3 col-md-pull-1">
<h3><input type="text" id="lData"/></h3>
</div>
<div class="col-md-3 col-md-pull-1">
<h3 style="font-size: 24px">Current EXP</h3>
</div>
<div class="col-md-3 col-md-pull-2">
<h3><input type="text" id="lData" /></h3>
</div>
</div>
</div>
</div>
您需要將lData設置為文本類型的輸入字段,並在JavaScript函數中將字段的值設置為從控制器返回的數據。
請訪問此網站以了解有關輸入字段的更多信息: http : //www.w3schools.com/tags/tag_input.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.