Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 10

0
votes
answers
17 views
+10

從控制器asp.net中的給定ID獲取數據mvc

1

我需要從數據庫中獲取一個字符串,在我的案例中添加業務時將其保存到該數據庫中。我可以通過下面的代碼,將其保存到數據庫中的業務控制器從控制器asp.net中的給定ID獲取數據mvc

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create([Bind(Include = "ID,Title,Address,Category,Description,Latitude,Longitute,Owner")] Business business) 
    { 
     business.Owner = System.Web.HttpContext.Current.User.Identity.Name;//I'm saving the current user as the owner 
     if (ModelState.IsValid) 
     { 
      db.Businesses.Add(business); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     return View(business); 
    } 

現在,所有我需要的是檢查當前用戶的用戶是否是被添加業務時,保存在模型中的業務所有者如上面的代碼所示。模型類低於

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace WebPortal.Models 
{ 
    public class Business 
    { 
     public int ID { get; set; } 
     public string Title { get; set; } 
     public string Address { get; set; } 
     public string Category { get; set; } 
     public string Description { get; set; } 
     public double Latitude { get; set; } 
     public double Longitude { get; set; }  
     public string Owner { get; set; }//in order to detect the original creator of the businness 
    } 
} 

的節省部分工作正常,這裏的是我試圖把它的業務控制器

// GET: Businesses/Edit/5 
    [Authorize] 
    public ActionResult Edit([Bind(Include = "ID,Title,Address,Category,Description,Latitude,Longitute,Owner")] int? id, string ownerr, Business business) 
    { 
     Business bs = new Business(); 
     //Authorizing Edit permission only for the owner of the business and the admin 
     if (!((System.Web.HttpContext.Current.User.Identity.Name == bs.Owner 
       || User.Identity.Name == "[email protected]"))) 
     { 
      return View(db.Businesses.ToList()); 
     } 

它還挺wronge獲取代碼。我只需要知道通過傳遞也許是ID如何獲取企業的relavent所有者...

編輯

ID可以通過以下HTML獲取和我正在試圖通過owner以及但是它在控制器返回一個空

{ 
      @Html.ActionLink("| Edit | ", "Edit", new { id = item.ID, owner = item.Owner }) 
      @Html.ActionLink("Delete", "Delete", new { id = item.ID }) 
     } 
沙发
0
2

我一般都身份標識模型的Id和我使用ApplicationUserManager查詢數據庫爲當前登錄用戶

private ApplicationUserManager _userManager; 
      public ApplicationUserManager UserManager 
     { 
      get 
      { 
       return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
      } 
      private set 
      { 
       _userManager = value; 
      } 
     } 


var user = UserManager.FindById(User.Identity.GetUserId()); 
var userId = Guid.Parse(user.Id); 

var _context = new MessageContext();    
var myContacts = _context.Contacts.Where(c => c.CustomerId == userId).ToList(); 
       ViewBag.Contacts = myContacts; 
+0

hi @frank獲取id完全沒有問題,只需通過問題底部的編輯代碼即可完成。我需要的只是爲每個ID獲得相關「所有者」... –

+0

您是否擁有所有者模型? –

+0

'owner'是上面提到的'Business'模型的一個屬性... –

0
votes
answers
29 views
+10

反序列化使用Newtonsoft和biding查看(MVVM)的JSON

1

我是C#和Xamarin的初學者。我想用newtonsoft反序列化json數組? 這裏是我的JSON文件:反序列化使用Newtonsoft和biding查看(MVVM)的JSON

{ 
 
    "next": { 
 
     "$ref": "http://192.168.0.100:8080/ords/hr/employees/?page=1" 
 
    }, 
 
    "items": [ 
 
     { 
 
      "empno": 7369, 
 
      "ename": "SMITH", 
 
      "job": "CLERK", 
 
      "mgr": 7902, 
 
      "sal": 800, 
 
      "deptno": 20 
 
     }, 
 
     { 
 
      "empno": 7934, 
 
      "ename": "MILLER", 
 
      "job": "CLERK", 
 
      "mgr": 7782, 
 
      "sal": 1300, 
 
      "deptno": 10 
 
     } 
 
    ] 
 
}

她是我的模型類:

public class RootObject 
 
    { 
 
     [JsonProperty("items")] 
 
     public Item[] Items { get; set; } 
 

 
     [JsonProperty("next")] 
 
     public Next Next { get; set; } 
 
    } 
 

 
    public class Next 
 
    { 
 
     [JsonProperty("$ref")] 
 
     public string Ref { get; set; } 
 
    } 
 

 
    public class Item 
 
    { 
 
     [JsonProperty("deptno")] 
 
     public long Deptno { get; set; } 
 

 
     [JsonProperty("empno")] 
 
     public long Empno { get; set; } 
 

 
     [JsonProperty("ename")] 
 
     public string Ename { get; set; } 
 

 
     [JsonProperty("job")] 
 
     public string Job { get; set; } 
 

 
     [JsonProperty("mgr")] 
 
     public long Mgr { get; set; } 
 

 
     [JsonProperty("sal")] 
 
     public long Sal { get; set; } 
 
    }

當我嘗試反序列化到一個列表它拋出異常此行:

var data = JsonConvert.DeserializeObject<List<RootObject>>(json);

錯誤是:

其他信息:不能反序列化當前JSON對象(例如{「name」:「value」})類型爲'System.Collections.Generic.List`1 [System.Object]',因爲類型需要JSON數組(例如[1,2,3])才能正確地反序列化。

要修復此錯誤,請將JSON更改爲JSON數組(例如[1,2,3])或更改反序列化類型,以使其成爲正常的.NET類型(例如,不是像整數這樣的基本類型,不是像數組或List的集合類型),可以從JSON對象反序列化。 JsonObjectAttribute也可以添加到類型中,以強制它從JSON對象反序列化。

此代碼desirialize JSON的,但我現在不retrive數據並填充類:

public class ApiServices { 
 

 

 
     public async Task<RootObject> GetRootObject() 
 
     { 
 
      var client = new HttpClient(); 
 
      var url = string.Format("http://mysite/ords/hr/employees"); 
 
      var response = await client.GetAsync(url); 
 

 
      var json = await response.Content.ReadAsStringAsync(); 
 

 
      dynamic jsonDe = JsonConvert.DeserializeObject<RootObject>(json); 
 

 
      return jsonDe; 
 
     }

我已經創造了一些代碼MainViewModel,但我不知道如何檢索數據並插入類別項目:

public class MainViewModel 
 
    { 
 
     #region Properties 
 
     
 
     public ObservableCollection<RootItemViewModel> RootObjects { get; set; } 
 

 
     private ApiServices apiServices; 
 

 
     #endregion 
 

 
     #region Constructors 
 
     public MainViewModel() 
 
     { 
 
      //Create observable collections 
 
      RootObjects = new ObservableCollection<RootItemViewModel>(); 
 

 
      //Instance services 
 
      apiServices = new ApiServices(); 
 

 
      //Load Data 
 
      LoadData(); 
 
     } 
 
     #endregion 
 

 
     #region Methods 
 

 

 
     private async void LoadData() 
 

 
     { 
 
      var emps = new RootObject(); 
 
         
 
      emps = await apiServices.GetRootObject(); 
 

 
      RootObjects.Clear(); 
 

 
      foreach (var item in RootObjects) 
 
      { 
 

 
       RootObjects.Add(new RootItemViewModel 
 
       { 
 

 

 
       }); 
 
      } 
 
     } 
 
      
 
     #endregion 
 
    } 
 
}

類RootItemViewModel:

public class RootItemViewModel : RootObject 
 
    { 
 

 
     
 
    }

+3

嘗試JsonConvert.DeserializeObject (json);你的json頂層是一個對象而不是列表。 – Cedar

沙发
0
0

1)你的JSON響應所示,它只是保持型RootObject的一個實例。

2)var data = JsonConvert.DeserializeObject<List<RootObject>>(json);不會工作,因此,因爲您嘗試投下RootObjectList<RootObject>。在錯誤響應中描述。

3)dynamic jsonDe = JsonConvert.DeserializeObject<RootObject>(json);將工作因爲在這裏你施放RootObjectRootObject。我也建議你塗用,而不是 「動態」 的 「變種」(明白爲什麼:dynamic vs var

4)你下面的方法似乎有沒有搞錯:

private async void LoadData() 
{ 
    var emps = new RootObject(); 

    emps = await apiServices.GetRootObject(); 

    RootObjects.Clear(); 

    //Mistake: 
    //You iterate through the previously cleared observable collection. 
    //it really should be "foreach (var item in emps.Items)" 
    foreach (var item in RootObjects) 
    { 

     RootObjects.Add(new RootItemViewModel 
     { 


     }); 
    } 
} 

5)它看起來像你想與Item類型的數組養活觀察集合你的RootObject

public class RootObject 
    { 
     [JsonProperty("items")] 
     public Item[] Items { get; set; } //This property 

     [JsonProperty("next")] 
     public Next Next { get; set; } 
    } 

那麼你實際上應該做的是設置這樣的數據:

private async void GetRootObjectItems() 
     { 
      RootObject emps = await apiServices.GetRootObject(); //Get the root object 
      RootObjects.Clear();      //clear the list 

      foreach (var item in emps.Items) //Important, to get the data from the Array on the RootObject 
      { 
       ///its a nice way to give your viewmodel a ctor signature that ensures a correct initialization 
       ///public RootItemViewModel(Item item) 
       ///{ 
       /// this.Deptno = item.Deptno; 
       ///} 
       RootObjects.Add(new RootItemViewModel(item)); 
      } 
     } 
    } 

6)這是沒有意義的你RootItemViewModelRootObject繼承。你應該讓它從Item繼承或擁有Item類型的財產。

我希望我能清理一下!

+1

很好的例子!謝謝。代碼工作!和我的觀點是綁定到視圖模型 –

+0

太棒了!也謝謝你 – Csharpest

板凳
0
0

對於此JSON:

{ 
"next": { 
    "$ref": "http://192.168.0.100:8080/ords/hr/employees/?page=1" 
}, 
"items": [ 
    { 
     "empno": 7369, 
     "ename": "SMITH", 
     "job": "CLERK", 
     "mgr": 7902, 
     "sal": 800, 
     "deptno": 20 
    }, 
    { 
     "empno": 7934, 
     "ename": "MILLER", 
     "job": "CLERK", 
     "mgr": 7782, 
     "sal": 1300, 
     "deptno": 10 
    } 
] 

}

使用這個類:

internal class SomeObject{ //in C# you can even NOT to define internal as well :) 
public class next{ 
    public string ref {get; set;} //var do not use $, you need to change the JSON code or you nned to make a custom reader for that. 
} 

public List<Item> items {get; set;} 

public class Item{ 
    public string empno {get; set;} 
    public string ename {get; set;} 
    public string job {get; set;} 
    public string mgr {get; set;} 
    public string sal {get; set;} 
    public string deptno {get; set;} 
} 
} 

反序列化的JSON到一個類,用這一個:

var obj = JSONConvert.DeserializeObject<SomeObject>(json); //json is a string of your JSON 

//Now you can access the data like 

listView.ItemsSource = obj.Items; //for mobile listview 

你不能把名單,因爲JSON對象不是純粹的List對象,它結合下一個對象和項目對象之間的對象。因此,在將JSON放入列表之前,您需要先創建一個類。

+0

感謝您的回覆Mr Hery! –

地板
0
0

http://json2csharp.com/總是有用的,(快速的方法來獲取類「骨架」)

像'Hery先生寫給你可能要做一個自定義的閱讀器或刪除$符號 - 如果要生成的JSON輸出你自己。

public class Next 
{ 
    public string @ref { get; set; } 
} 

public class Item 
{ 
    public int empno { get; set; } 
    public string ename { get; set; } 
    public string job { get; set; } 
    public int mgr { get; set; } 
    public int sal { get; set; } 
    public int deptno { get; set; } 
} 

public class RootObject //(rename class you something better like Employees) 
{ 
    public Next next { get; set; } 
    public List<Item> items { get; set; } 
} 

對於反序列化:

var data = JsonConvert.DeserializeObject<RootObject>(json); 

var _employees = JsonConvert.DeserializeObject<Employees>(json); 
+0

謝謝@ bomanden。 Oracle自動生成對象「next」來處理分頁。 –

0
votes
answers
29 views
+10

進程間通信的最佳途徑是什麼?

0

嗨我要在.net中開發應用程序。它是.net核心。這是網絡應用程序。我有一個進程在同一臺機器上運行。這是用c編程編寫的。我想在我的.net應用程序和進程之間進行雙向通信。那麼哪種機制非常適合?像我將在Linux環境中託管我的.net應用程序的要求,並且過程也在Linux環境中運行。我經歷了命名管道,消息隊列等。按照我的要求,這將是一個好的解決方案?在這方面可以有人幫助我嗎?任何幫助將不勝感激。謝謝。進程間通信的最佳途徑是什麼?

沙发
0
1

很大程度上取決於非功能性要求/性能要求,但我建議您去尋求其他API。

我也建議你考慮一個微服務架構,描述https://www.nginx.com/blog/building-microservices-inter-process-communication/

+0

謝謝祚再考。在.net中,我選擇了.net core 2.0的其餘API。我將在nginx服務器中託管我的.net代碼。我的.net代碼將在ubuntu操作系統中運行。另外服務器(用c編寫)將在同一個ubuntu操作系統中! –

+0

我已經瀏覽了上面分享的鏈接。由於我使用Rest API(客戶端),我想在客戶端和服務器之間進行雙向通信。那麼這將是高效的IPC機制? –

+0

我建議你閱讀這篇文章:https://stackoverflow.com/questions/35613841/most-efficient-way-to-communicate-between-multiple-net-apps。這幾乎是相同的話題,對IPC和其他特定主題有很多反饋意見。 –

0
votes
answers
31 views
+10

獲取關係數據與Angular cli前端卡住

1

後端和Typescript工作正常,因爲在瀏覽器網絡選項卡我得到我想要的,我的問題是,我被困在HTML ...我不知道如何顯示數據。獲取關係數據與Angular cli前端卡住

這裏是我什麼,我進入控制檯從我的Web API 2:

{ 
"Id":1, 
"Name":"testete", 
"Description":"Test", 
"DueDate":"2017-1205T15:14:27.307", 
"IsCompleted":true, 
"Worker": 
[ 
    { 
    "Id":1, 
    "FirstName":"Johnny", 
    "LastName":"Doe", 
    "Job":[] 
    }, 
    {"Id":2,"FirstName":"yyyy","LastName":"yyyyy","Job":[]}, 
    {"Id":3,"FirstName":"bbbbb","LastName":"vvvvvvvv","Job":[] 
    } 
] 

}

這是我的情況下,模型是不正確的:

export class Jobs { 
Id: number; 
Name: string; 
Description: string; 
DueDate: Date; 
IsCompleted?: boolean; 

worker: Worker[]; 

}

這是我在html組件中顯示數據的嘗試:

<label class="labelInputs">Workers Assigned to this job</label> 
<div *ngFor="let job of jobs"> 
    <div *ngFor="let worker of job.worker"> 
     <label class="labelInputs" value="worker"> 
      {{worker.FirstName}} 
     </label> 
    </div> 
</div> 

我得到這個錯誤:ERROR Error: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.

這可能是誤導,因爲我甚至不知道如何顯示嵌套的東西,所以如果有人可以告訴我,我將非常感謝。

我只想顯示在「工人」中存在的所有標籤中的工人名字。

非常感謝您

編輯: 這是我如何得到我的工作。

getJobs(): void { 
    const id = +this.route.snapshot.paramMap.get('id'); 
    this.jobsService.getJob(id) 
     .subscribe(jobs => this.jobs = jobs); 
} 

這是我的服務:

getJob(id: number): Observable<Jobs> { 
    const url = `${this.apiURL}/${id}`; 

    return this.http.get<Jobs>(url); 
} 

這裏工作和工作人員的初始化數組或者對象:

@Input() jobs: Jobs; 

public Job: Jobs; 
public Jobs: Jobs[]; 

public workers: Worker[]; 
public worker: Worker; 
+1

哪裏'jobs = Array ()'? – Zze

沙发
0
3

我想你想exlude你的第一個*ngFor循環,你可以迭代一個對象。

<label class="labelInputs">Workers Assigned to this job</label> 
<div *ngFor="let worker of Jobs.worker"> 
    <label class="labelInputs" value="worker"> 
     {{worker.FirstName}} 
    </label> 
</div> 

您還需要填充工作和工作人員。

所以......

export class Jobs { 
... 
    constructor(){ 
    this.Workers = new Array<Worker>(); 
    } 
} 

然後,你需要通過類似加你從服務器接收到的數據:

job = new Jobs(); 
for each(var worker in data.Worker){ 
    Job.Workers.push(worker as Worker); 
} 

更新:

這裏是一個工作plunkr這表明這更好。

+0

我覺得你是對的,但我對Angular很不好。所以我在我的ts組件中定義了這個'Jobs:Jobs [];'或者像這樣'jobs = Array ()',並且在這個'Jobs.worker'中說「worker is not defined」。如果我這樣做'工作:工作;'我的工作人員正在看到工人,但在這裏:'{{工人。FirstName}}'我得到'名字未定義' – Eduard

+1

請參閱我的更新@Eduard。您需要正確實例化作業 - 而不僅僅是陣列。 :) – Zze

+0

好吧,它變得混亂。首先「一個構造函數不能有這個參數」它在ngOnInit中有效。但是,然後每個地方去哪裏?爲了得到我的工作,我在我現在編輯的問題中使用了該方法。我應該用我的foreach? – Eduard

0
votes
answers
18 views
+10

How do you loop through currently loaded assemblies?

I've got a "diagnostics" page in my ASP.NET application which does things like verify the database connection(s), display the current appSettings and ConnectionStrings, etc. A section of this page displays the Assembly versions of important types used throughout, but I could not figure out how to effectively show the versions of ALL of the loaded assemblies.

What is the most effective way to figure out all currently referenced and/or loaded Assemblies in a .NET application?

Note: I'm not interested in file-based methods, like iterating through *.dll in a particular directory. I am interested in what the application is actually using right now.

0
votes
answers
11 views
+10

在哪個版本的C#索引器中引入?

1

在哪個版本的C#或.Net Framework索引器中引入?在哪個版本的C#索引器中引入?

+1

@GiladGreen:公平地說,像這樣的歷史知識的文檔*相對*很難找到。 –

+3

[C#語言規範v1.0](http://download.microsoft.com/download/a/9/e/a9e229b9-fee5-4c3e-8476-917dee385062/csharp%20language%20specification%20v1.0.doc) 。 – Theraot

沙发
0
8

他們一直在使用C#和.NET,從version 1.0

9
votes
answers
14 views
+10

A potentially dangerous Request.Path value was detected from the client (*)

I am receiving the rather self explanatory error:

A potentially dangerous Request.Path value was detected from the client (*).

The issue is due to * in the request URL:

https://stackoverflow.com/Search/test*/0/1/10/1

This url is used to populate a search page where 'test*' is the search term and the rest of the url relates to various other filters.

Is there an easy way to allow these special characters in the URL? I've tried modifying the web.config, to no avail.

Should I manually encode / decode the special characters? Or is there a best practice for doing this, I would like to avoid using query strings. - but it may be an option.

The application itself is a c# asp.net webforms application that uses routing to produce the nice URL above.

沙发
+50

You should encode the route value and then (if required) decode the value before searching.

感謝您的答复。你的意思是effectivley對*等項目進行替換,然後在閱讀時更換它們? - user336245 2011年5月11日16:04

你能展示編碼和解碼值的代碼示例嗎? - Ciaran Gallagher 18年8月28日11:14

板凳
+40

For me, I am working on .net 4.5.2 with web api 2.0, I have the same error, i set it just by adding requestPathInvalidCharacters="" in the requestPathInvalidCharacters you have to set not allowed characters else you have to remove characters that cause this problem.

<system.web>
     <httpRuntime targetFramework="4.5.2" requestPathInvalidCharacters="" />
     <pages  >
      <namespaces>
     ....
 </namespaces>
    </pages> 
  </system.web>

**Note that it is not a good practice, may be a post with this parameter as attribute of an object is better or try to encode the special character. -- After searching on best practice for designing rest api, i found that in search, sort and paginnation, we have to handle the query parameter like this

/companies?search=Digital%26Mckinsey

and this solve the problem when we encode & and remplace it on the url by %26 any way, on the server we receive the correct parameter Digital&Mckinsey

this link may help on best practice of designing rest web api https://hackernoon.com/restful-api-designing-guidelines-the-best-practices-60e1d954e7c9

地板
0

This exception occurred in my application and was rather misleading.

It was thrown when I was calling an .aspx page Web Method using an ajax method call, passing a JSON array object. The Web Page method signature contained an array of a strongly-typed .NET object, OrderDetails. The Actual_Qty property was defined as an int, and the JSON object Actual_Qty property contained "4 " (extra space character). After removing the extra space, the conversion was made possible, the Web Page method was successfully reached by the ajax call.

4楼
0

Try to set web project's server propery as Local IIS if it is IIS Express. Be sure if project url is right and create virual directory.

5楼
0

When dealing with Uniform Resource Locator(URL) s there are certain syntax standards, in this particular situation we are dealing with Reserved Characters.

As up to RFC 3986, Reserved Characters may (or may not) be defined as delimiters by the generic syntax, by each scheme-specific syntax, or by the implementation-specific syntax of a URI's dereferencing algorithm; And asterisk(*) is a Reserved Character.

The best practice is to use Unreserved Characters in URLs or you can try encoding it.

Keep digging :

如果URL中的保留字符是百分比編碼,例如%25而不是%,則也會發生此錯誤,因此IIS可能會為完全有效的URL返回此錯誤。 - Florian Winter 4月25日11:56

0
votes
answers
13 views
+10

如何在ASP.NET/WCF中定期執行某些操作?

0

首先對於問這樣一個愚蠢的問題感到抱歉,我在asp.net中相當新手。如何在ASP.NET/WCF中定期執行某些操作?

因此,我應該定期做一些事情,比如我是網站heartpatients.com的所有者(假設),我希望每個訪問該網站的網站用戶在2小時後顯示一條消息「Take你的藥丸「。所以,基本上這就是我所有的問題,我應該如何在每2小時後(或4,6,無論什麼時間)之後顯示此信息,我該如何定製時間。
還有一件事,比如說,如果我在WCF服務中使用這種方法,那麼會顯示此消息,我如何在特定時間調用該服務,甚至是由用戶配置(例如有人在10小時後服用藥丸?)如何在用戶指定的時間之後週期性地傳遞該服務(服務中的特定方法)?

我希望我提出的問題很清楚。
任何幫助表示讚賞。

+0

您是否正在尋找一個推送通知某種移動設備的做到這一點?我認爲在用戶擁有網頁的情況下在瀏覽器中執行此操作並不現實,如果這就是您的想法。 – TimDog 2012-01-16 17:46:14

+0

從服務器端運行調度然後使用類似[Comet](http://en.wikipedia.org/wiki/Comet_(編程))將*消息推送到頁面可能更合適。 – 2012-01-16 17:58:36

+0

@TimDog: 實際上,我真正想要做的是讓用戶設置一個持續時間,然後在很長時間內(2小時,4小時)向用戶發送一封郵件(一種提醒) – Razort4x 2012-01-17 06:14:51

沙发
0
6

ASP.NET通常不適合作爲任務調度程序。網絡的性質是一個請求/響應系統。因此,一個web應用程序只是坐等待一個請求,產生一個響應,並完成。

對於任何類型的後端計劃任務的,我建議你可以:

  1. 一個Windows Service
  2. 計劃運行(我認爲Windows自帶的任務調度程序)
控制檯應用程序

無論哪種方式都有優點和缺點。例如,Windows服務將從引導時運行,並且沒有控制檯UI,並且從服務器的角度來看,通常非常易於管理。儘管控制檯應用程序傳統上更容易編寫和調試。

這些仍然可以共享來自您的Web應用程序的代碼。如果您的業務邏輯和數據訪問以及所有這些好東西都在他們自己的項目/程序集中,那麼這些其他應用程序也可以使用這些程序集。 (當然,如果一切都在你的Web應用程序的用戶界面結合,這是另一個問題完全。)

什麼我最關心的是......你怎麼打算顯示這個消息給用戶?用戶是否一次只坐在您的網站上幾個小時,您需要提醒他們服用藥物?或者你打算髮送電子郵件或其他東西?也許你給的例子並沒有真正解釋你想要做什麼?我不確定。

在後臺運行任務是一回事,但在我看來,整個方程的整個一半(向用戶顯示一條消息)顯得有些茫然,並沒有真正想過。

+0

是的 - Windows確實帶有一個任務調度程序。 – 2012-01-16 18:00:21

+0

好主意的控制檯應用程序,以及任務計劃。 – Aristos 2012-01-16 18:10:45

+0

@David 首先感謝您的回覆。其實,我真正想要做的是讓用戶設定一段時間,然後在很長時間內(2小時,4小時)發送一封郵件(一種提醒)給用戶關於他們的藥片。 – Razort4x 2012-01-17 06:13:29

板凳
0
2

退房Quartz.Net:http://quartznet.sourceforge.net/

它可以讓你安排任務如何使用cron表達式來運行: http://en.wikipedia.org/wiki/Cron

0
votes
answers
13 views
+10

使用Ajax將數組從視圖傳遞到控制器,但是在操作時,數組顯示爲空

1

我正在將數組從視圖傳遞到使用Ajax的控制器,但操作時數組顯示爲空。使用Ajax將數組從視圖傳遞到控制器,但是在操作時,數組顯示爲空

這是我的代碼:

查看

$("#btn").click(function() { 
      debugger 
      arry = []; 
       $.ajax({ 
       type: "Post", 
       url: "/Main/CheckBoxes", 
       data: { Values: arr["48","47","46"] }, 
       success: function() { 
        alert("array: " + arry.join(', ')); 
       }, 
       error: function() { 
        alert("error"); 
       } 
      }) 


     }); 

行動

public ActionResult array(string[] Values) 
     { 
      for (int id = 0; id < Values.Length; id++) 
      { 
       string newID = Values[id]; 
      } 

     return View(); 
    } 
+0

'數據:{值: 「48」, 「47」, 「46」]},'和'加上傳統:真實;' –

+1

和動作方法的名字是'array',你在呼喚來自客戶端腳本的其他內容!!! – Shyju

沙发
0
1
jQuery.ajaxSettings.traditional = true; 

$("#btn").click(function() { 
      debugger 
      arry = []; 
       $.ajax({ 
       type: "Post", 
       url: "/Main/CheckBoxes", 
       data: { Values:["48","47","46"]},//just edit this line 
       success: function() { 
        alert("array: " + arry.join(', ')); 
       }, 
       error: function() { 
        alert("error"); 
       } 
      }) 


     }); 
+0

動態創建該數組使用jquery和數組創建成功,如果我這樣發送數組({值:arry.join(',')})arry有值,但是當我發送像這樣的數組({值:arry} )其顯示空陣列? –

+0

data:{Values:arry} –

板凳
0
1

您的代碼對於你是如何發送數據的一些問題!當你執行這個表達式時你期望什麼arr["48","47","46"] ?????這將給你undefined,這就是你想要發送!

有兩種方法可以修復您的代碼。您可以在請求正文中發送數組。爲此,您需要從數組中創建一個JSON字符串,並將其作爲data屬性發送,同時將請求內容類型標頭值顯式指定爲「application/json」。您可以使用JSON.stringify方法來獲取js數組的JSON字符串。

此外,請確保您正在調用正確的操作方法。在您的問題中,您分享了array操作方法代碼,但在您的客戶端腳本中,您嘗試調用不同的操作方法(「複選框」)!

這應該工作。

var arry = ["48", "47", "46"]; 
var url = "@Url.Action("array", "Main")"; // Update your real url here 
// If your script is inside the razor view, you can us Url.Action (c#) method 

$.ajax({ 
    type: "Post", 
    url: url , 
    data: JSON.stringify(arry), 
    contentType: "application/json", 
    success: function(r) { 
     alert("Success"); 
     console.log(r); 
    }, 
    error: function() { 
     alert("error"); 
    } 
}); 

另一種選擇是發送javascript對象與屬性Values(其具有數組作爲它的值)作爲$.ajax呼叫的數據屬性值。現在請求內容類型頭將爲application/x-www-form-urlencoded;,並且該數組將在請求中作爲FormData發送。

var arry = ["48", "47", "46"]; 

$.ajax({ 
    type: "Post", 
    url: "/Main/array", 
    data: { Values: arry }, 
    success: function(r) { 
     console.log(r); 
    }, 
    error: function() { 
     alert("error"); 
    } 
}); 
+0

動態創建該數組並使用jquery,並且數組已成功創建,如果我發送數組,如下所示({Values:arry.join(',')})arry具有值,但是當我發送數組像這樣({Values:arry})其顯示空數組? –

+0

我剛剛用MVC5應用程序,jquery 3.2.1測試瞭解決方案的第二部分,它對我很有幫助。你有沒有嘗試第一個解決方案? – Shyju

0
votes
answers
16 views
+10

如何使SQL Server示例數據庫包含在我的.NET項目中以發送給其他人?

0

節日快樂!如何使SQL Server示例數據庫包含在我的.NET項目中以發送給其他人?

我有一個.NET Web項目,我正在工作,需要發送一個樣本,供有人看。我的問題是SQL Server 2017數據庫。

我知道你可以包括用於Access數據庫(如Northwind)的.mdb文件,但我不記得發送過SQL Server示例數據庫。

我的限制是這樣的:雖然我具有對數據庫的讀/寫訪問權限,但我無法在數據庫服務器或工作站上安裝任何內容。

感謝您的幫助, 卡洛斯

+2

您可以設計您的應用程序以使用其他數據源,如SQLite。或者您可以讓用戶添加數據庫配置,然後從應用程序代碼中爲數據庫創建種子。無需在應用程序中實際包含數據庫。 – mason

+1

LocalDB是Sql Server版本,不需要完全安裝Sql Server,您可以發送您的MDF數據庫文件並附加到您的客戶端上安裝的LocalDB實例以供演示。請參閱https://stackoverflow.com/questions/9655362/localdb-deployment-on-client-pc – Steve

+1

如果您有權限並且不需要共享數據,請嘗試在Management Studio中生成「CREATE TABLE」腳本。這將是一個快速解決方案,對於任何更永久的事情,你需要更多的權限,或者@mason說重新設計應用程序。 – Iztoksson

沙发
0
1

您可以提供SQL的LocalDB安裝

請參考:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-2016-express-localdb

的LocalDB並不需要管理員權限的:它安裝在應用程序數據 此外,您可以爲您的數據提供一個mdf文件。你可以看看如何build the connection string